猫史档案馆


用一句话证明你的编程水平

用户:PlumStevenPlumSteven查看:8 回复:17 评论:8 创建时间:2023-11-12T20:31:56


如题,我先来。

 

已知Kruskal基于并查集实现,所以Dijkstra不能处理负权边,由此可知A*=BFS+启发式函数。又因为线段树的建树时间复杂度为O(n),得到Prim又慢又难写(Kruskal好写多了还快),于是就可以知道,CDQ分治是用来解决偏序问题的。


回复

上一页1 页 / 共 1下一页
追梦ez追梦ez

菜寄路过

点赞0


评论


初小白是大笨‏蛋⁧~喵⁧初小白是大笨‏蛋⁧~喵⁧

我会做地图存档(

点赞0


评论


LiaoxyuCMLiaoxyuCM

print('hell0 world')

点赞0


评论


real_unmberreal_unmber

3D的投影公式为:x*300\z  y*300\z

围绕y旋转的公式为:z*cos(0-dir)+x*sin(0-dir)   z*sin(0-dir)-x*cos(0-dir)

点赞0


评论


飞熊jsrt飞熊jsrt

复赛第一题保龄155

点赞0


评论


LiaoxyuCMLiaoxyuCM

import random  
  
print("欢迎来到猜数字游戏!")  
print("我已经想好了一个1到100之间的数字,请你猜一猜是多少。")  
  
secret_number = random.randint(1, 100)  
guesses = 0  
  
while True:  
    guess = input("你猜是多少? ")  
    guess = int(guess)  
    guesses += 1  
  
    if guess == secret_number:  
        print("恭喜你,猜对了!你一共猜了", guesses, "次。")  
        break  
    elif guess < secret_number:  
        print("太小了,再试试吧。")  
    else:  
        print("太大了,再试试吧。")

 

点赞0


评论


森林之喵a森林之喵a

我会做捕捉呆鲤鱼

点赞0


评论


86135clc86135clc

用php实现Hello World

Hello, World!

点赞0


评论


初小白是大笨‏蛋⁧~喵⁧初小白是大笨‏蛋⁧~喵⁧

我做过云种田

点赞1


评论


飞熊jsrt飞熊jsrt

20年前就作出飞天蝙蝠来了😠

点赞0


评论


tiger666250tiger666250

我是新人,刚学IOI,请问可持久化离散化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套喵树预处理动态DP分治FFT求多项式逆元对数函数的指数函数用可持久化并查集合并最小费用循环流上插头DP怎么写?

点赞1


评论


Ctrl_VCtrl_V

原神玩得好送一棵线段树苗

点赞0


评论


此人为迪迦此人为迪迦

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    </body>
</html>

点赞0


评论


小奕小奕小奕小奕小奕小奕

参加过ISIJ2023,不信请看(www.n(啥也没说)oi.c(啥也没说)n/xw/2023-07-08/793995.shtml),会后缀数组,splay,网络流,可持久化并查集,DancingLinks,树链剖分,喵树,带修改的莫队等进阶算法,学习编程6年,但wmh比我更值得点赞n倍(n>1000)

DancingLinks代码:

#include <bits/stdc++.h>

using namespace std;

const int N=5511;

int n,m;
int l[N];
int r[N];
int u[N],d[N];
int s[N];
int ro[N],co[N];
int idx;

int ans[N];
int top;

inline void init()
{
    for(int i=0;i<=m;i++)
    {
        l[i]=i-1;
        r[i]=i+1;
        u[i]=d[i]=i;
    }
    idx=m+1;
    l[0]=m,r[m]=0;
}

inline void add(int & hh,int & tt,int x,int y)
{
    ro[idx]=x,co[idx]=y,s[y]++;
    u[idx]=y;
    d[idx]=d[y];
    u[d[y]]=idx;
    d[y]=idx;
    
    r[hh]=l[tt]=idx;
    r[idx]=tt;
    l[idx]=hh;
    
    tt=idx++;
}

inline void remove(int p)
{
    r[l[p]]=r[p];
    l[r[p]]=l[p];
    for(int i=d[p];i!=p;i=d[i])
    {
        for(int j=r[i];j!=i;j=r[j])
        {
            s[co[j]]--;
            u[d[j]]=u[j];
            d[u[j]]=d[j];
        }
    }
}

inline void resume(int p)
{
    for(int i=u[p];i!=p;i=u[i])
    {
        for(int j=l[i];j!=i;j=l[j])
        {
            u[d[j]]=j;
            d[u[j]]=j;
            s[co[j]]++;
        }
    }
    r[l[p]]=p;
    l[r[p]]=p;
}

bool dfs()
{
    if(r[0]==0)return 1;
    
    
    int p=r[0];
    for(int i=r[0];i;i=r[i])    
    {
        if(s[i]<s[p])p=i;
    }
    
    
    remove(p);
    for(int i=d[p];i!=p;i=d[i])
    {
        ans[++top]=ro[i];
        for(int j=r[i];j!=i;j=r[j])remove(co[j]);
        if(dfs())return 1;
        for(int j=l[i];j!=i;j=l[j])resume(co[j]);
        top--;
    }
    resume(p);
    return 0;
}

int main()
{
    cin>>n>>m;
    init();
    for(int i=1;i<=n;i++)
    {
        int hh,tt;
        hh=tt=idx;
        for(int j=1;j<=m;j++)
        {
            int x;
            scanf("%d",&x);
            if(x)add(hh,tt,i,j);
        }
    }
    if(dfs())
    {
        for(int i=1;i<=top;i++)
        {
            printf("%d ",ans[i]);
        }
    }else
    {
        puts("No Solution!");
    }
    return 0;
}

点赞2


评论


我真不是官方我真不是官方

海龟函数就是lj()()()()()()()()

点赞0


评论


_stars_stars

print('114514(悲)')

点赞0


评论


小苏打_小苏打_

#include<stdio/h>

int n;

int mian(){
    scnaf("%d", &n);
    whlie(--n)<%
        puts("NO");
    %>
    reutrn 0;
}

 

点赞0


评论