考试前打模板

图论

dijkstra

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const int maxn=200005;
inline ll read(){
    ll x=0,k=1;char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) k=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=(x<<3)+(x<<1)+ch-‘0‘;ch=getchar();}
    return k*x;
}
int fir[maxn],nex[maxn],to[maxn],w[maxn],ecnt;
int dis[maxn],vis[maxn];
void addedge(int u,int v,int wi){
    nex[++ecnt]=fir[u];fir[u]=ecnt;to[ecnt]=v;w[ecnt]=wi;
}
struct node{
    int d,id;
    bool operator < (const node&rhs) const{
        return d>rhs.d;
    }
};
void dij(int s){
    memset(dis,127,sizeof dis);
    memset(vis,0,sizeof vis);
    priority_queue<node> q;
    dis[s]=0;
    q.push((node){0,s});
    while(!q.empty()){
        node u=q.top();
        q.pop();
        if(vis[u.id]) continue;
        vis[u.id]=1;
        for(int i=fir[u.id];i;i=nex[i]){
            int v=to[i];
            if(u.d+w[i]<dis[v]){
                dis[v]=u.d+w[i];
                q.push((node){dis[v],v});
            }
        }
    }
}
int main(){
//    freopen(".in","r",stdin);
//    freopen(".out","w",stdout);
    int n,m,s;
    n=read();m=read();s=read();
    for(int i=1;i<=m;i++){
        int x,y,z;
        x=read();y=read();z=read();
        addedge(x,y,z);
    }
    dij(s);
    for(int i=1;i<=n;i++) cout<<dis[i]<<" ";
    return 0;
}

spfa判负环

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const int maxn=6005;
inline ll read(){
    ll x=0,k=1;char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) k=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=(x<<3)+(x<<1)+ch-‘0‘;ch=getchar();}
    return k*x;
}
int fir[maxn],nex[maxn],to[maxn],w[maxn],ecnt;
int dis[maxn],vis[maxn],cnt[maxn];
void addedge(int u,int v,int wi){
    nex[++ecnt]=fir[u];fir[u]=ecnt;to[ecnt]=v;w[ecnt]=wi;
}
int n,m;
bool spfa(int s){
    memset(dis,127,sizeof dis);
    memset(vis,0,sizeof vis);
    memset(cnt,0,sizeof cnt);
    queue<int> q;
    q.push(s);
    dis[s]=0;vis[s]=1;
    while(!q.empty()){
        int u=q.front();
        q.pop();vis[u]=0;
        if(cnt[u]>=n) return true;
        for(int i=fir[u];i;i=nex[i]){
            if(dis[u]+w[i]<dis[to[i]]){
                dis[to[i]]=dis[u]+w[i];
                if(!vis[to[i]]){
                    q.push(to[i]);
                    vis[to[i]]=1;
                    cnt[to[i]]++;
                    if(cnt[to[i]]>=n) return true;
                }
            }
        }
    }
    return false;
}
int main(){
//    freopen(".in","r",stdin);
//    freopen(".out","w",stdout);
    int t;
    t=read();
    while(t--){
        ecnt=0;memset(fir,0,sizeof fir);
        n=read();m=read();
        for(int i=1;i<=m;i++){
            int a,b,w;
            a=read();b=read();w=read();
            addedge(a,b,w);
            if(w>=0) addedge(b,a,w);
        }
        if(spfa(1)) cout<<"YE5"<<endl;
        else cout<<"N0"<<endl;
    }
    return 0;
}

最短路计数

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const int maxn=4000005;
const int mod=100003;
inline ll read(){
    ll x=0,k=1;char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) k=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=(x<<3)+(x<<1)+ch-‘0‘;ch=getchar();}
    return k*x;
}
int fir[maxn],nex[maxn],to[maxn],w[maxn],ecnt;
int dis[maxn],vis[maxn],cnt[maxn];
void addedge(int u,int v,int wi){
    nex[++ecnt]=fir[u];fir[u]=ecnt;to[ecnt]=v;w[ecnt]=wi;
}
int n,m;
void spfa(int s){
    memset(dis,127,sizeof dis);
    memset(vis,0,sizeof vis);
    queue<int> q;
    q.push(s);
    dis[s]=0;vis[s]=1;cnt[1]=1;
    while(!q.empty()){
        int u=q.front();
        q.pop();vis[u]=0;
        for(int i=fir[u];i;i=nex[i]){
            if(dis[u]+1<dis[to[i]]){
                dis[to[i]]=dis[u]+1;
                cnt[to[i]]=cnt[u];
                if(!vis[to[i]]){
                    q.push(to[i]);
                    vis[to[i]]=1;
                }
            }
            else if(dis[u]+1==dis[to[i]]){
                cnt[to[i]]=(cnt[to[i]]+cnt[u])%mod;
            }
        }
    }
}
int main(){
//    freopen(".in","r",stdin);
//    freopen(".out","w",stdout);
    n=read();m=read();
    for(int i=1;i<=m;i++){
        int a,b;
        a=read();b=read();
        addedge(a,b,1);
        addedge(b,a,1);
    }
    spfa(1);
    for(int i=1;i<=n;i++){
        cout<<cnt[i]<<endl;
    }
    return 0;
}

kruskal

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const int maxn=200005;
const int mod=100003;
inline ll read(){
    ll x=0,k=1;char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) k=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘){x=(x<<3)+(x<<1)+ch-‘0‘;ch=getchar();}
    return k*x;
}
struct node{
    int x,y,w;
}a[maxn];
bool cmp(node xx,node yy){
    return xx.w<yy.w;
}
int fa[maxn];
int find(int x){
    return x==fa[x]?x:fa[x]=find(fa[x]);
}
int n,m,ans;
void kruskal(){
    int cnt=0;
    sort(a+1,a+m+1,cmp);
    for(int i=1;i<=m;i++){
        if(find(a[i].x)!=find(a[i].y)){
            fa[find(a[i].x)]=find(a[i].y);
            ans+=a[i].w;
            cnt++;
        }
        if(cnt==n-1) break;
    }
}
int main(){
//    freopen(".in","r",stdin);
//    freopen(".out","w",stdout);
    n=read();m=read();
    for(int i=1;i<=m;i++){
        a[i].x=read();a[i].y=read();a[i].w=read();
    }
    for(int i=1;i<=n;i++) fa[i]=i;
    kruskal();
    cout<<ans;
    return 0;
}

原文地址:https://www.cnblogs.com/silent-pyb/p/9931307.html

时间: 2024-10-22 01:48:11

考试前打模板的相关文章

进击的handlebars前后端模板引擎

在browser浏览器中使用Handlebars 1 基本语法 <div class="demo"> <h1>{{name}}</h1> <p>{{content}}</p> </div> 2 通过script标签放置模板 <script type="text/template" id="avatarTpl"> <div class="info_b

中科院 工程硕士专业课 复试考试前的辅导安排

同学们大家好: 学校定于12月6日.7日组织专业课辅导,1月初进行专业课复试及资格审查. 辅导具体日程安排如下: 12月6日下午13:00  数据结构(报考软件工程.计算机技术领域考生) 人文楼教一阶   12月7日上午9:00   信号与系统(报考电子与通信工程领域考生)     教学楼304 12月7日上午9:00   概率论与数理统计(报考控制工程领域考生)     教学楼315 12月7日上午9:00   电子线路(报考集成电路工程领域考生)         教学楼305 1月复试资格审

前后端模板引擎

页面模板化,直接加载json,循环替换即可,把页面变成js模板,加载json,生成页面即可 JS模板,前端模板引擎 把JS获取到的接口数据重新放进页面,进行数据更新 php模板引擎: feather view http://feather-team.github.io/blade是laravel提供的模板引擎http://www.golaravel.com/laravel/docs/5.1/blade/ laravel框架 java模板引擎:freemarker 前端模板引擎artTemplat

S2 结业考试前改错汇总

1. PS:正确答案是A:枚举是值类型,一个类的对象是引用类型. 2. 每张表最多包含1个聚集索引.并且聚集索引会决定记录储存的物理位置.聚集索引不一定要建立在主键字段上.一张表可以没有任何索引. 3. .NET框架结构的核心组件是CLR(Common Language Runtime)公共语言进行时 FCL(Framework Class Library)框架类库 PS:CLR和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间 必要的分离

2016.6.10 考试总结

汽艇(Boat.cpp/c/pas) [问题描述] 有 n 个人要去坐 1 汽艇,每个人单独坐汽艇的快乐程度是 Ci,每多一个人,他的快乐程度会减去 Di,请求出使快乐程度之和达到最大的方案.(假设汽艇的容量足够大). [输入格式] 输入文件共有 3 行: 第1 行是一个整数 n: 第2 行有n 个整数,依次表示每个人单独坐汽艇的快乐程度 Ci(1<=Ci<=10000): 第3 行有n 个整数,依次表示每多 1 人,每个人快乐程度的下降值 Di(1<=Di<=10). [输出格式

noip2016考前模板

先是到现在还是靠背的版 线性筛,O(2*N) 1 int flag[N],prim[N],cnt; 2 3 int built(int n) 4 { 5 for(int i=2;i<=n;i++) 6 { 7 if(flag[i]==0) 8 prime[cnt]=i,cnt++; 9 for(int j=0;j<cnt&&i*prim[j]<=n;j++) 10 { 11 flag[i*[prim[j]]=1; 12 if(i%prim[j]==0) 13 break;

PAT 计算机程序设计能力考试

[官方简介] 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准. 考试遵循统一考试大纲.统一考试命题.统一考试评分标准.统一颁发证书的原则,由考试中心负责考试的组织.日常管理和具体实施工作.每年分春.秋.冬季组织3次统一考试,大约分别在每年2-3月.8-9月.11-12月举行.每场考试分三个难度级别:顶级(Top Lev

[考试反思]0201省选模拟15:分界

30+10+30+100=170 rk13 17岁的第一仗出师不利. 和外校联考,所以难度不高?后三道题非常简单基本上都是裸的. 但是我做的这是个啥啊... T2广义后缀自动机板子写挂,如果儿子是nq就把儿子修改成nq... T3想到正解然后算错复杂度结果觉得都可以写个简单的于是就把暴力交了上去. T1猜到了第一个结论不会分块暴力也没想到数位dp... 考试前就感觉今天要炸,结果就真炸了. 又当了一次改题大神.半小时一道,中午没睡觉就直接改完了. 下午在uoj上乱跑找好题做ppt.效率挺低的.

Linux系统管理期末考试小结

这学期主要讲Linux系统管理,内容分为六章:了解并安装Linux系统,文件和目录管理,用户.组和权限管理,磁盘与文件系统管理,系统软件包管理,系统进程和服务管理.期末考试要求每个学生在自己的笔记本电脑里新建虚拟机,安装rhel6系统,并设为桥接模式,然后按照考题要求进行实践操作.最后评分时,我编写了一个可以自动评分的脚本,并将脚本程序在我电脑的Linux虚拟机里设为NFS共享,然后依次在每个学生的虚拟机通过NFS共享,复制脚本到本地进行评分.试题和脚本我已在附件里共享,有兴趣的朋友可以下载练习