分糖果+对抗赛

2023-10-14 00:30
文章标签 糖果 对抗赛

本文主要是介绍分糖果+对抗赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对抗赛

60e4f4ff02224760a18336d6cace53f3.png

这个题实力演绎了什么叫做玄学。。。加快读就过不加快读就不过=_=本地编译的时候跑出来明明是对的放到测评机来跑就能跑出来个零

分糖果

20133877d10d427c87fb508b8793c1fc.png

数据已经毒到一定境界了,第一次 60

#include<bits/stdc++.h>
using namespace std;
int n,m,p,c,cnt,ans;
int head[100010],vis[100010],dis[100010];
struct node{int to,next,val;}e[2000010];
void add_edge(int u,int v)
{e[++cnt].to=v;e[cnt].next=head[u];e[cnt].val=1;head[u]=cnt;
}
int main()
{freopen("candy.in","r",stdin);freopen("candy.out","w",stdout);memset(dis,0x3f3f3f,sizeof dis);memset(head,0,sizeof head);scanf("%d%d%d%d",&n,&p,&c,&m);for(int i=1;i<=p;i++){int u,v,w;scanf("%d%d",&u,&v);add_edge(u,v);add_edge(v,u);}dis[c]=0;vis[c]=1;queue<int>q;q.push(c);while(!q.empty()){int u=q.front();q.pop();for(int i=head[u];i;i=e[i].next){int v=e[i].to;if(dis[u]+e[i].val<dis[v]){dis[v]=dis[u]+e[i].val;ans=max(ans,dis[v]);if(!vis[v]){q.push(v);vis[v]=1;}}}vis[u]=0;}printf("%d",ans+m+1);return 0;
}
/*
4 3 1
2
1 2
2 3
1 4
*/

第二次70

#include<bits/stdc++.h>
using namespace std;
int n,m,p,c,cnt,a,b=1,q[100010][2],head[100010];
struct node{int to,next;}e[2000010];
bool vis[100010];
void add_edge(int u,int v)
{e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;
}
void bfs()
{q[1][0]=c,q[1][1]=1;vis[c]=1;while(b>a){a++;for(int i=head[q[a][0]];i;i=e[i].next){if(!vis[e[i].to]){q[++b][0]=e[i].to;q[b][1]=q[a][1]+1;vis[e[i].to]=1;}}}
}
int main()
{freopen("candy.in","r",stdin);freopen("candy.out","w",stdout);memset(head,0,sizeof head);scanf("%d%d%d%d",&n,&p,&c,&m);for(int i=1;i<=p;i++){int u,v;scanf("%d%d",&u,&v);add_edge(u,v);add_edge(v,u);}bfs();printf("%d",q[b][1]+m); return 0;
}
/*
4 3 1
2
1 2
2 3
1 4
*/

最后用上了平生所学所有优化技巧。所以日常优化很重要

#include<bits/stdc++.h>
using namespace std;
#define N 100010
int n,m,f,t,head[N],dis[N],cnt;
struct edge
{ int to,nxt; } e[2000010];
int read()
{int x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar();}return x*f;
}
inline void add(int u,int v)
{e[++cnt].to=v;e[cnt].nxt=head[u];head[u]=cnt;
}
typedef pair<int,int> pr;
priority_queue<pr,vector<pr>,greater<pr> > q;
inline void dij()
{memset(dis,0x3f3f3f3f,sizeof(dis));dis[f]=1;q.push(make_pair(1,f));while(!q.empty()){int x=q.top().second;q.pop();for(register int i(head[x]); i; i=e[i].nxt){int v=e[i].to;if(dis[v]>dis[x]+1)dis[v]=dis[x]+1,q.push(make_pair(dis[v],v));}}
}
int main()
{freopen("candy.in","r",stdin);freopen("candy.out","w",stdout);n=read(),m=read(),f=read(),t=read();for(register int i=1; i<=m; ++i){int u=read();int v=read();add(u,v);add(v,u);}dij();int ans=0;for(register int i=1; i<=n; ++i) ans=max(ans,dis[i]);printf("%d",ans+t);return 0;
}

所以:

  1. 快读
  2. register int
  3. ++i
  4. inline void/int
  5. 习惯性priority

随手优化

这篇关于分糖果+对抗赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206899

相关文章

【最新华为OD机试E卷-支持在线评测】分糖果(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

力扣135-分发糖果(java详细题解)

题目链接:135. 分发糖果 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法:局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优,并且没有反例来反驳的话就可以用贪心来试试。 题目思路: 本题主要就是难在,有俩个维度,当前的孩子不仅要跟左边比,还要跟右边比。 可能我们一开始就想遍历孩子,让当前孩子先跟左边

【NO.15】LeetCode经典150题-135. 分发糖果

文章目录 【NO.15】LeetCode经典150题-135. 分发糖果解题:贪心 【NO.15】LeetCode经典150题-135. 分发糖果 135. 分发糖果 【困难】 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。

2015ACM多校对抗赛第四场 hdu 5336

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5336 XYZ and Drops Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1024    Accepted Submissio

2015ACM多校对抗赛第四场 hdu 5335

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5335 Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2280    Accepted Submission(s):

2015ACM多校对抗赛第四场 hdu 5327

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5327 Olympiad Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 442    Accepted Submission(s):

Hdu 5326 2015多校对抗赛三

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5326 Work Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 749    Accepted Submission(s): 490

Hdu 5325 2015多校对抗赛三

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5325 Crazy Bobo Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 1305    Accepted Submission(

Hdu 5323 2015多校对抗赛三

Solve this interesting problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2029    Accepted Submission(s): 617 Problem Description

hdu 5318 2015多校对抗赛三

The Goddess Of The Moon Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 842    Accepted Submission(s): 373 Problem Description Chang