当前位置: 首页 > news >正文

0102

SPFA模板

 1 #define R 400002
 2 #include<iostream>
 3 #include<vector>
 4 #include<queue>
 5 using namespace std;
 6 int n,m;
 7 struct node
 8 {
 9     int to,w;
10 };
11 vector<node>adj[R];
12 int dis[R],z,w,ans=2e9;
13 bool vin[R];
14 queue<int>qu;
15 void spfa(int s)
16 {
17     int x,y,z;
18     for(int i=1;i<=n;i++) dis[i]=2e9;
19     dis[s]=0;
20     qu.push(s);
21     vin[s]=1;
22     while(qu.size()>0)
23     {
24         x=qu.front();
25         qu.pop();
26         vin[x]=0;
27         for(int k=0;k<adj[x].size();k++)
28         {
29             int y=adj[x][k].to;
30             if(dis[y]>dis[x]+adj[x][k].w)
31             {
32                 dis[y]=dis[x]+adj[x][k].w;
33                 if(!vin[y])
34                 {
35                     qu.push(y);
36                     vin[y]=1;
37                 }
38             }
39         }
40     }
41     return;
42 }
43 int main()
44 {
45     cin>>n>>m;
46     for(int x,y,ty,tim,i=1;i<=m;i++)
47     {
48         cin>>x>>y>>ty>>tim;
49         adj[x].push_back((node){y,tim});
50     }
51     spfa(1);
52     for(int i=2;i<=n;i++)
53     {
54         ans=dis[i];
55         if(ans==2e9) cout<<"-1 ";
56         else cout<<ans<<' ';
57     }
58     return 0;
59 }
View Code

SPFA分层图写法

 1 #define R 400002
 2 #include<iostream>
 3 #include<vector>
 4 #include<queue>
 5 using namespace std;
 6 int n,m;
 7 struct node
 8 {
 9     int to,w;
10 };
11 vector<node>adj[R];
12 int dis[R],z,w,ans=2e9;
13 bool vin[R];
14 queue<int>qu;
15 void spfa(int s)//原点s到其他点的最短距离
16 {
17     int x,y,z;
18     for(int i=1;i<=2*n;i++) dis[i]=2e9;//初始都是无穷大(到不了)
19     dis[s]=0;//自己到自己
20     qu.push(s);
21     vin[s]=1;
22     while(qu.size()>0)
23     {
24         x=qu.front();
25         qu.pop();
26         vin[x]=0;
27         for(int k=0;k<adj[x].size();k++)
28         {
29             int y=adj[x][k].to;
30             if(dis[y]>dis[x]+adj[x][k].w)
31             {
32                 dis[y]=dis[x]+adj[x][k].w;
33                 if(!vin[y])
34                 {
35                     qu.push(y);
36                     vin[y]=1;
37                 }
38             }
39         }
40     }
41     return;
42 }
43 int main()
44 {
45     cin>>n>>m;
46     for(int x,y,ty,tim,i=1;i<=m;i++)
47     {
48         cin>>x>>y>>ty>>tim;
49         if(ty==1)
50         {
51             adj[x].push_back((node){y,tim});//第一层: x -> y
52             adj[x+n].push_back((node){y,tim});//第二层: (x+n)->(y+n)
53         }
54         else//跨层连边
55         {
56             adj[x].push_back((node){y+n,tim});//第一层到第二层:x -> y+n
57         }
58     }
59     spfa(1);
60     for(int i=2;i<=n;i++)
61     {
62         ans=min(dis[i],dis[i+n]);
63         if(ans==2e9) cout<<"-1 ";
64         else cout<<ans<<' ';
65     }
66     return 0;
67 }
View Code

2025 CSPJ 第一题 多种写法

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 string a;
 4 priority_queue<int>q;
 5 int main()
 6 {
 7     cin>>a;
 8     for(int i=0;i<a.size();i++)
 9     {
10         if(a[i]>='0'&&a[i]<='9') q.push(a[i]-'0');
11     }
12     while(q.size()>0)
13     {
14         cout<<q.top();
15         q.pop();
16     }
17     return 0;
18 }
19 
20 
21 #include<bits/stdc++.h>
22 using namespace std;
23 string s;
24 int num[10];
25 int main()
26 {
27     cin>>s;
28     for(int i=0;i<s.size();i++)
29     {
30         if(s[i]>='0'&&s[i]<='9') num[s[i]-'0']++;
31     }
32     for(int i=9;i>=0;i--)
33     {
34         while(num[i]>0) cout<<i<<' ',num[i]--;
35     }
36     return 0;
37 }
View Code

2025 CSPJ 第二题 多种写法

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[102],n,m;
 4 void work()
 5 {
 6     int x,cnt=0,id,c;
 7     cin>>n>>m;
 8     cin>>a[1];
 9     x=a[1];
10     for(int i=2;i<=n*m;i++)
11     {
12         cin>>a[i];
13         if(a[i]>x) cnt++;
14     }
15     id=cnt+1;
16     sort(a+1,a+1+n*m,greater<int>());
17     if(id%n==0) c=id/n;
18     else c=id/n+1;
19     w=id-(c-1)*n;
20     if(c%2==1) r=w;
21     else r=n+1-w;
22     cout<<c<<' '<<r<<endl;
23 }
24 int main()
25 {
26     work();
27     return 0;
28 }
29 
30 
31 #include<bits/stdc++.h>
32 using namespace std;
33 int a[102],n,m;
34 void work()
35 {
36     int cnt=0;
37     for(int j=1;j<=m;j++)
38     {
39         if(j%2==1)
40         {
41             for(int i=1;i<=n;i++)
42             {
43                 id++;
44                 if(a[id]==x) cout<<j<<' '<<i<<endl;
45             }
46         }
47         else
48         {
49             for(int i=n;i>=1;i--)
50             {
51                 id++;
52                 if(a[id]==x) cout<<j<<' '<<i<<endl;
53             }
54         }
55     }
56 }
57 int main()
58 {
59     work();
60     return 0;
61 }
View Code

2025 CSPJ 第三题

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 //前缀异或
 4 //a^b=c  -->  c^a=b
 5 int n,k,a[500001],pos[500001],x,s;
 6 int main()
 7 {
 8     int wei,tou,ans=0,Last;//Last控制它们不许有公共点
 9     cin>>n>>k;
10     for(int i=1;i<=n;i++) cin>>a[i];
11     memset(pos,-1,sizeof pos);
12     pos[0]=0;//边界 "空"的前缀和为0
13     Last=0;
14     for(wei=1;wei<=n;wei++)
15     {
16         s[wei]=s[wei-1]^a[wei];
17         x=s[wei]^k;//x=s[tou]-1
18         if(pos[x]>=Last) ans++,Last=wei;
19         pos[s[wei]]=wei;
20     }
21     cout<<ans<<endl;
22     return 0;
23 }
View Code

 

http://www.jsqmd.com/news/182108/

相关文章:

  • 环保公益活动:志愿者用VoxCPM-1.5-TTS-WEB-UI录制节能减排倡议
  • 【Java双签名安全架构】:深入解析ECDSA+ML-DSA混合签名实战方案
  • 边防检查协助:移民官员使用VoxCPM-1.5-TTS-WEB-UI核实旅行目的
  • 跨国企业培训:全球员工统一收听VoxCPM-1.5-TTS-WEB-UI英文版制度说明
  • Sonic数字人支持1080P高清输出,min_resolution设置建议1024
  • GitHub镜像站点汇总:快速拉取Sonic相关开源代码
  • 为什么你的Java系统需要ML-KEM,密钥封装实现细节首次公开
  • 【Java线程安全实战】④ 可重入锁ReentrantLock深度拆解:如何实现线程安全的同步?
  • (Java日志智能分析黄金法则):5步实现自动根因定位与告警降噪
  • 研究生论文润色:导师建议用VoxCPM-1.5-TTS-WEB-UI听稿发现语病
  • Matlab卷积神经网络对一维信号进行二分类及多分类的源码详解与实例:从数据加载到混淆矩阵的绘制
  • ComfyUI集成Sonic数字人视频生成全流程详解
  • 还在熬夜赶论文?9款AI神器免费搞定,效率飙升300%!
  • 揭秘Java向量API跨平台兼容性问题:5大关键适配方案全面解读
  • 大学生创业辅导:孵化器提供VoxCPM-1.5-TTS-WEB-UI商业计划书朗读服务
  • Java模块化类加载与字节码操作:深入JVM底层的文件读写原理(内部资料)
  • 【JavaDoc Markdown写作秘籍】:掌握高效文档编写的5大核心技巧
  • 社保缴费查询:老年人拨打12333收听VoxCPM-1.5-TTS-WEB-UI余额播报
  • 犯罪心理重建:警方用VoxCPM-1.5-TTS-WEB-UI复现嫌疑人内心独白
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的的商品标签识别系统(Python+PySide6界面+训练代码)
  • 战争创伤治疗:退伍军人通过VoxCPM-1.5-TTS-WEB-UI重构记忆叙述
  • 【专家级架构设计】:基于Kafka Streams的反应式微服务适配实践
  • 户籍迁移指南:派出所提供VoxCPM-1.5-TTS-WEB-UI所需材料清单朗读
  • 还在依赖堆内存?Java外部内存API让你性能提升300%
  • 医疗导诊AI助手来了!基于Sonic的数字人应用案例
  • 特殊儿童干预:自闭症患儿通过VoxCPM-1.5-TTS-WEB-UI建立沟通桥梁
  • pgAdmin 4 高危漏洞利用分析:CVE-2025-12762 认证RCE PoC详解
  • AugmentCode续杯插件完整使用指南:高效创建无限测试账户的终极解决方案
  • 《创业之路》-784-要用战术上的勤奋,来掩盖战略上的懒惰
  • 如何用Project Reactor提升Kafka Streams性能?(反应式适配优化秘籍)