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点好好学习算法,到宿舍补一补学校课程,看看网课,学校课程能逃就逃,然后学点有用的。

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

相关内容

热门资讯

档案培训班开班仪式主持词   档案管理培训班开班仪式主持词  (请大家安静,我们现在举行培训班开班仪式)  各位领导,各位学员...
学校教师团拜会主持词 学校教师团拜会主持词  主持词是主持人在节目进行过程中用于串联节目的串联词。在现今人们越来越重视活动...
培训开班仪式致辞 培训开班仪式致辞(精选19篇)  无论是在学校还是在社会中,大家肯定对各类致辞都很熟悉吧,致辞是指在...
舞蹈串烧节目主持词 舞蹈串烧节目主持词  舞蹈串烧节目应该怎么进行主持呢?以下是小编整理的舞蹈串烧节目主持词,欢迎参考阅...
元旦节目主持词 2023元旦节目主持词范文(通用16篇)  主持词是主持人在台上表演的灵魂之所在。随着中国在不断地进...
结婚典礼新郎父亲致辞 结婚典礼新郎父亲致辞(精选13篇)  在平平淡淡的学习、工作、生活中,大家对致辞都不陌生吧,致辞具有...
美剧经典台词摘选 美剧经典台词摘选  Men are not prisoners of fate, but priso...
富有诗意的开学典礼的致辞 富有诗意的开学典礼的致辞范文(通用10篇)  在日常的学习、工作、生活中,大家都不可避免地要接触到致...
女方婚礼出阁宴主持词 女方婚礼出阁宴主持词范文(通用9篇)  主持词可以采用和历史文化有关的表述方法去写作以提升活动的文化...
公司春节团拜会主持词 公司春节团拜会主持词  主持词需要富有情感,充满热情,才能有效地吸引到观众。现今社会在不断向前发展,...
灾害急救知识及技能竞赛主持词 灾害急救知识及技能竞赛主持词  主持词要注意活动对象,针对活动对象写相应的主持词。在现在的社会生活中...
赌侠经典的台词 赌侠经典的台词  刘德华,周星驰试图将《赌神》和《赌圣》的名牌发扬光大的作品,这部《赌侠》也是他们早...
小学生开学典礼主持词 小学生开学典礼主持词  主持词需要富有情感,充满热情,才能有效地吸引到观众。在当下的社会中,主持人在...
酒鬼酒著名广告词 酒鬼酒著名广告词发布时间:2017-04-01  1.酒鬼背酒鬼,千斤不嫌赘;酒鬼喝酒鬼,千杯不会醉...
优秀班会主持词 2017年优秀班会主持词  班会是班主任做好班级管理工作的一条有效途径。主持词要怎么说呢?下面是小编...
婚宴主持人词 婚宴主持人词  婚宴开始  尊敬的各位来宾,尊敬的各位亲朋好友,大家晚上好!在这天地之合的喜庆之日,...
电影《爱情公寓》经典台词 电影《爱情公寓》经典台词  1、我们也许是别人故事里的配角,但至少有一个舞台,我们永远都会站在最中央...
摇滚藏獒经典台词 关于摇滚藏獒经典台词  藏獒波弟(Bodi)生长于喜马拉雅山深处一个与世隔绝的世外桃源,本该按家族传...
千与千寻里的经典台词 千与千寻里的经典台词  在日新月异的现代社会中,需要使用台词的情况越来越多,台词起着解释镜头内容和推...
在升学宴上的嘉宾代表致辞 在升学宴上的嘉宾代表致辞在升学宴上的嘉宾代表致辞  尊敬的各位嘉宾,女士们,先生们:    大家上午...