首页 > 其他分享 >CSP普及组模板整合

CSP普及组模板整合

时间:2022-09-19 21:23:22浏览次数:63  
标签:普及 return int long find include CSP 模板 define

快速幂

#include<iostream>
#include<cstdio>
#define int long long
using namespace std;

int ksm(int b,int p,int k){
    int ans=1;
    while(p){
        if(p&1)
        ans=ans%k*b%k;
        b=b%k*b%k;
        p>>=1;
    }
return ans%k;
}


signed main(){
int b,p,k;
cin>>b>>p>>k;
cout<<b<<"^"<<p<<" mod "<<k<<"="<<ksm(b,p,k)%k;


    return 0;     
}

字符串哈希

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int mod=0x7fffffff;
int p=131;
char s[100000];
int h(char *s){
	int l=strlen(s);
	int sum=0;
	for(int i=0;i<l;i++)
	sum=p*sum+(int)s[i];
	return sum%mod;
}

int ans=0,m[100000];

signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
	scanf("%s",s);
	m[i]=h(s);
}
	
sort(m+1,m+n+1);

for(int i=1;i<=n;i++){
	if(m[i]!=m[i-1])
	ans++;	
}
	cout<<ans;
	
	return 0;
	
} 

并查集(路径压缩)

#include <iostream>
#include <cstdio>
using namespace std;
int z, x, y;
int n, m;
int f[10000];

int find(int s) {

    if (f[s] == s)
        return s;

    return f[s] = find(f[s]);

}


int main() {
    cin >> n >> m;

    for (int i = 1; i <= n; i++) {
        f[i] = i;
    }


    for (int i = 1; i <= m; i++) {
        cin >> z >> x >> y;

        if (z == 1)
            f[find(x)] = find(y);

        else {
            if (find(x) == find(y))
                cout << "Y" << endl;
            else
                cout << "N" << endl;
        }
    }

    return 0;
}

gcd

int gcd(ll a, ll b){
  if (!b)return a;
  else return gcd(b, a % b);
}

lcm

int lcm(int a,int b){
  return a/gcd(a,b)*b;
}

dijkstra堆优化

#include<bits/stdc++.h>
#define INF 0x7fffffff
#define MAXN 1000086
#define MAXM 2000086
#define int long long
using namespace std;
int n,m,s,head[MAXN],cnt,dis[MAXN];
bool vis[MAXN];
struct edge{
    int w,to,nxt;
}e[MAXM];
struct node{
int dis,id;
    bool operator <(const node& x)const{
        return x.dis<dis;
    }
};
priority_queue<node>q;
void add(int u,int v,int w){
    e[cnt].w=w;
    e[cnt].to=v;
    e[cnt].nxt=head[u];
    head[u]=cnt++;
}



void init(){
for(int i=0;i<=n;i++){
    head[i]=-1;
    e[i].nxt=-1;
}
cnt=0;
}

void dijkstra(){
    dis[s]=0;
    q.push((node){0,s});
    while(!q.empty()){
        node cur=q.top();
        q.pop();
        int x=cur.id;
        int d=cur.dis;
        if(vis[x])continue;
        vis[x]=1;
        for(int i=head[x];~i;i=e[i].nxt){
            int y=e[i].to;
            if(vis[y])continue;
            if(dis[y]>dis[x]+e[i].w){
                dis[y]=dis[x]+e[i].w;
                q.push((node){dis[y],y});
            }
        }
    }
}


signed main(){

cin>>n>>m>>s;
init();
for(int i=0;i<=n;i++){
    dis[i]=INF;
}
int u,v,w;
for(int i=1;i<=m;i++){
    cin>>u>>v>>w;
    add(u,v,w);
}   
dijkstra();
for(int i=1;i<=n;i++)printf("%lld ",dis[i]);


    return 0;
}

标签:普及,return,int,long,find,include,CSP,模板,define
From: https://www.cnblogs.com/DAIANZE/p/16709092.html

相关文章

  • CSP-S开小灶6 玩水,AVL树,暴雨,置换
    T1:简单模拟;T2:树上前序遍历贪心;T3:DP;T4:咕了T1:n*m的方格,每个格子上有不同字母,要求从(1,1)出发,只能走下或者右,到达(n,m),问存不存在至少3种不重复路径,路径经过的字母连起来相同......
  • 【Coel.解题报告】【没事找事】CSP-S2 真题解析
    昨天刚考完CSP-S1,反正没什么想做的(最近好颓废…),来复盘一下。本次比赛评价(转载):CSP-S1是由CCF自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「基数排序......
  • STL常用基础模板
    STL模板:堆头文件:#include<queue>大根堆:priority_queue<int>q;小根堆:priority_queue<int,vector<int>,greater<int>>q;操作:q.top()//取得堆顶元素,并不会弹出q.pop......
  • 算法通用模板讲解
    作用:1.作论文—数据—程序进行实现;2.程序多种多样,需要一个通用的模板;3.关键:通用的地方是什么?4.算法之间的共同点与不同点; 算法的模板:1.参数设置:(1......
  • 洛谷P3372【模板】线段树1
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intn,m,a[N];intadd[N*4];//账本longlongsum[N*4];//a[k]的区间和voidbuild(intk,intl,i......
  • python读写文件模板记录
    目录读写模式读文件read(可选:size)一次性读全部内容readline()读取一行内容readlines()读取所有内容,返回列表从file中读取每行等同于readlines()的功能写......
  • CSP-J/S介绍
    CSP-J/S:CCF非专业级软件能力认证(CertifiedSoftwareProfessionalJunior/Senior,简称CSP-J/S)创办于2019年,是由CCF统一组织的评价计算机非专业人士算法和编程能力的活动。......
  • CSP-S 2022 游记
    2022.9.18(Day1)要来考场之前发现自己还有一堆作业欠着,然而周末一直在颓废。本校考还是爽,没啥复杂的入场程序,带人就可以。一直都没看到一教101在哪里(入场感觉良好,开题......
  • 2022CSP-S初赛游记
    锅奇多的一次Day0会不会因为初赛就AFO力(大悲躺在床上,头脑发慌,难以入睡Day111:14昏从uoj群里拿到了J组试卷wocT3考指针,S组考这个......
  • CSP 2022 游记
    day-114514复习初赛,实则颓AcSaberday初赛都第三年了还是没有长进,初赛还是悬。上午考完,没看懂阅读程序,感觉寄了。中午睡过头了,赶紧润(结果发现隔壁宿舍还在打牌)。下......