ACM---大一第三周周赛(Floyd算法+并查集算法学习周)
创始人
2024-05-28 17:33:36
0

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.CSDN
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:ACM周训练题目合集.CSDN
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️为什么我们不知疲倦,因为我们都在做自己所热爱的事 ♐

文章目录

  • A - Color the ball
  • B - Suits
  • C - 六度分离
  • D - 无处不在的宗教
  • E - 农场派对
  • F - 怪物(简易版)
  • G - 嫌疑犯
  • 比赛情况:
  • 总结


在这里插入图片描述

A - Color the ball

杭电—Color the ball
在这里插入图片描述
解题思路:考察差分数组,基础模板

#include
#include using namespace std;int arr[100010];
int n,i;int main()
{while(scanf("%d", &n), n!=0){memset(arr, 0, sizeof(arr));for(i=1;i<=n;i++){int l,r;cin>>l>>r;arr[l]++;arr[r+1]--;}for(i=1;i<=n;i++){arr[i]+=arr[i-1];if(i!=n){printf("%d ", arr[i]);}else printf("%d",arr[i]);}cout<

B - Suits

洛谷—Suits
在这里插入图片描述
解题思路:数学问题,一直分类讨论就可以解了

#include
#include
#include
#includeusing namespace std;int a,b,c,d,e,f;
typedef long long ll;
ll m1,m2;
ll mn=-1;int main() 
{	cin>>a>>b>>c>>d>>e>>f;int max=0;int mn=min(a,d);int mx=min(c,d);if(e*mn+f*min(b,min(c,d-mn))>max){max=e*mn+f*min(b,min(c,d-mn));}if(e*min(a,d-min(b,mx))+f*min(b,mx)>max){max=e*min(a,d-min(b,mx))+f*min(b,mx);}if(e*mn>max){max=e*mn;}if(f*min(b,mx)>max){max=f*min(b,mx);}cout<

C - 六度分离

杭电—六度分离
在这里插入图片描述

#include
#include
#include
#includeusing namespace std;#define inf 0x3f3f3f3fint g[101][101];
int n,m,ans;int main()
{while(cin>>n>>m){for(int i=0;ifor(int j=0;jif(i==j) g[i][j]=0;else g[i][j]=inf;}}while(m--){int a,b;cin>>a>>b;g[a][b]=g[b][a]=1;}for(int k=0;kfor(int i=0;ifor(int j=0;jif(g[i][j]>g[i][k]+g[k][j]){g[i][j]=g[i][k]+g[k][j];}}}}//以上全部是模板int flag=0;for(int i=0;ifor(int j=0;jif(g[i][j]>7){puts("No");flag=1;break;}}if(flag) break;}if(flag==0)puts("Yes");}return 0;
}

D - 无处不在的宗教

POJ无处不在的宗教

在这里插入图片描述

//水题,竟然我也能AC....
#include
#include
#include
#includeusing namespace std;int n,m;
int p[100010];int find(int x)
{return p[x]==x?x:(p[x]=find(p[x]));//算法模板}
int s=1;
int main()
{cin>>n>>m;
again:int ans=0;for(int i=1;i<=n;i++) p[i]=i;while(m--){int i,j;cin>>i>>j;i=find(i);j=find(j);if(i!=j){p[i]=j;//模板}}for(int i=1;i<=n;i++){if(find(i)==i){ans++;}}printf("Case %d: %d\n",s++,ans);cin>>n>>m;if(n==0&&m==0) return 0;else goto again;return 0;
}

E - 农场派对

#10075. 「一本通 3.2 练习 1」农场派对
在这里插入图片描述

#include
#include
#includeusing namespace std;#define inf 0x3f3f3f3f//结论,一个很大的数,适合这个算法的初始化int n,m,x;
long long g[1010][1010];
long long path[1010][1010];int main()
{int max=0;cin>>n>>m>>x;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j) g[i][j]=0;else g[i][j]=inf;}}for(int i=1;i<=m;i++){int a,b,t;cin>>a>>b>>t;g[a][b]=t;}for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(g[i][j]>g[i][k]+g[k][j]){g[i][j]=g[i][k]+g[k][j];}}}}//以上全部是算法模板for(int i=1;i<=n;i++){if(g[i][x]+g[x][i]>=max)//这里根据题目要求来写就对了,调试了一会儿AC了{max=g[i][x]+g[x][i];}}cout<

F - 怪物(简易版)

A. Monsters (easy version)
在这里插入图片描述

#include
#include
#include
#includeusing namespace std;typedef long long ll;ll t,n,arr[200010],i,j;int main()
{cin>>t;while(t--){ll cnt=0;cin>>n;for(i=1;i<=n;i++) cin>>arr[i];sort(arr+1,arr+n+1);if(arr[1]!=1){cnt+=arr[1]-1;arr[1]=1;}for(i=2;i<=n;i++){if(arr[i]-arr[i-1]>=2){cnt+=arr[i]-arr[i-1]-1;arr[i]=arr[i-1]+1;}}cout<

G - 嫌疑犯

The Suspects
在这里插入图片描述

#include
#include
#include
#includeusing namespace std;int n,m,ans,k;
int p[100010];
int a[100010];int find(int x)
{return p[x]==x?x:(p[x]=find(p[x]));//并查集的固定模板
}inline void he(int i,int j)
{int x=find(i);int y=find(j);if(xp[y]=x;}else p[x]=y;
}int main()
{while(cin>>n>>m&&n||m){ans=0;for(int i=0;icin>>k;cin>>a[0];//合并for(int i=1;icin>>a[i];he(a[i],a[i-1]);}}for(int i=0;iif(find(i)==0)//根据题意来求解。{ans++;}}cout<

比赛情况:

大一第十(前面有个学长试水~),退步好多这一次,下面做一下这一周比赛的一个总结,以便于后面的学习。
在这里插入图片描述
表述题目难度以及做题时候的感想:
A---临时加上去的,感觉学长们为了照顾那些爆0的同学加的,简单差分模板。

B---这个是我第二个做出来的,花费了我巨多时间,哭了,我的思维还是不够敏捷,需要多加练习思维题目,不然这种题目大家都拿到了,我还要花好多时间才能过,真的很难受的

C---没时间做,后面自己尝试了一下子,发现只要根据题目逻辑去写是完全套板子的问题,就是多加一点循环和判断的问题。

D---这个更加的板子,我一次可AC了,非常模板。

E---Floyd算法的板子题目,我第一个AC的这个题目,相对于板子,只需要加一点判断就可以了,简单。

F---没时间做,后面自己尝试了一下子,思维题,被我的好哥们讲懂了,我还是不擅长写思维题目,脑子很笨。

G---这个比赛的时候写了,but没写完全,就结束了,后面补了一下题,发现这个题目就是并的时候需要注意外,别的就是板子,害,我可能太笨了。

总结

心态:就是可能看到别人比我聪明,就心里非常难受,比赛的时候落后,心里更是难受,觉得算法好难学啊,好想退缩,但是算法迟早是要学习的,不如顶住压力,好好学,哪怕倒数第一,也要勇往直前,放平心态,继续加油夏目浅石

学习方法:一定要学会思考,把每一周的题目自己独立思考至少30min后不会了再去看答案学习人家的思路,不然效率很低下。还有就是,昨完一定一定要总结模板总结思路总结题型!!!!!!!!!!!

时间安排:后续要晚上7-10点好好学习算法,到宿舍补一补学校课程,看看网课,学校课程能逃就逃,然后学点有用的。

虽然很苦难,但是还是要继续坚持下去。
在这里插入图片描述
激励一下自己吧,虽然挺难过的

相关内容

热门资讯

柏林战争想象作文350字 柏林战争想象作文350字  我是苏联陆军第十三师的列兵米勒。  1945年4月,我们在队长老柯莱蒂的...
军训感受的作文 军训感受的作文(精选43篇)  在日复一日的学习、工作或生活中,大家对作文都再熟悉不过了吧,作文一定...
做更好的自己作文 做更好的自己作文(4篇)  无论在学习、工作或是生活中,大家都不可避免地会接触到作文吧,作文是由文字...
国王与啄木鸟童话故事 国王与啄木鸟童话故事  在平平淡淡的日常中,大家都有写故事的经历,下面是小编帮大家整理的国王与啄木鸟...
诗情画意作文 诗情画意作文14篇  在日常生活或是工作学习中,大家都经常看到作文的身影吧,作文是经过人的思想考虑和...
展望未来作文400字 展望未来作文400字(精选8篇)  在现实生活或工作学习中,大家都经常接触到作文吧,写作文是培养人们...
为自己作文 为自己作文集合15篇  在生活、工作和学习中,大家总免不了要接触或使用作文吧,作文是人们以书面形式表...
勇敢的小刺猬童话作文 勇敢的小刺猬童话作文(3篇)  在日常学习、工作或生活中,大家一定都接触过作文吧,写作文是培养人们的...
土豆童话作文 有关土豆童话作文五篇  无论是身处学校还是步入社会,大家都经常接触到作文吧,作文是从内部言语向外部言...
草船借箭的故事缩写 草船借箭的故事缩写(通用94篇)  诸葛亮,他是我最崇拜的古人之一,他神机妙算,料事如神,上知天文下...
写读后感作文 关于写读后感作文(通用40篇)  看完一本名著后,相信大家一定领会了不少东西,需要好好地就所收获的东...
启蒙童话故事 启蒙童话故事大全【三篇】启蒙童话故事大全【三篇】1  这天小鹿骄傲的说,我是跑的最快的,小兔不服气,...
植物观察日记 植物观察日记(精选50篇)  忙碌而又充实的一天又过去了,在你心中有什么感想呢?让我们今天做个总结,...
大蒜发芽观察日记 大蒜发芽观察日记(精选26篇)  不知不觉中一天又要结束了,这一天里,大家身边一定有一些有趣的见闻吧...
伴你入梦散文 伴你入梦散文  “亲爱的,吻你30口,当我吻完的时候,如果你没有说话,我也去睡了。”隔着手机,我温柔...
介绍自己的作文 关于介绍自己的作文7篇  在日常学习、工作和生活中,大家对作文都再熟悉不过了吧,借助作文人们可以实现...
王子和公主童话故事 王子和公主童话故事王子和公主童话故事1  从前有个国王深深地爱着一位公主。可惜公主却不能嫁给任何人,...
6岁儿童睡前童话故事 6岁儿童睡前童话故事(通用14篇)  童话故事是指儿童文学的一种体裁,童话中丰富的想象和夸张可以活跃...
假期生活的作文 关于假期生活的作文(精选20篇)  在平时的学习、工作或生活中,大家都写过作文,肯定对各类作文都很熟...
少儿助眠童话故事 少儿助眠童话故事精选【四篇】少儿助眠童话故事精选【四篇】1  有一棵柿子树,已经很老很老了。  又是...