欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 牛客周赛 Round 56(A~E)

牛客周赛 Round 56(A~E)

2024/10/24 6:27:06 来源:https://blog.csdn.net/2302_79372568/article/details/141355831  浏览:    关键词:牛客周赛 Round 56(A~E)

目录

A.面包店的故事

B.放课后故事

C.异或故事 

D.构造故事

E.约会故事


A.面包店的故事

思路: 签到题

C++代码:

void solve()
{  int a,b,c;cin>>a>>b>>c;int sum=b+a;cout<<(sum<=c?"YES":"NO");
}

B.放课后故事

思路:注意在纸足够多的情况下,分到的人不会超过m+1

C++代码:

void solve()
{  int n,m,k;cin>>n>>m>>k;int sum=0,cnt=0;for(int i=0;i<n;i++){int x;cin>>x;sum+=x;cnt+=sum/k;sum%=k;}if(cnt>=m+1) cout<<m+1;else cout<<cnt;
}

C.异或故事 

 

思路根据异或的性质我们得出,用1去异或上一个数n,如果n为奇数则得到n−1,否则我们会得到n + 1,由此,们发现,直接用1去异或就好了嘛,但考虑特殊的两个数,输入为1或1e9时,我们发现,用1去异或得到的两个数为0和1e9 + 1,不在我们要求的范围内,所以我们特判一下这两个数即可

C++代码:

void solve()
{  int t;cin>>t;while(t--){int x;cin>>x;if(x==1e9){cout<<"999999999 1023"<<endl;continue;}else if(x==1) cout<<"2 3"<<endl;else cout<<1<<' '<<(1^x)<<endl;}
}

D.构造故事

思路:贪心+排序,依次枚举三条最大的边,如果符合三角形的三边关系则退出循环,否则输出-1

C++代码:

void solve()
{  int t;cin>>t;while(t--){int n;cin>>n;vector<int> v(n);for(auto &it:v) cin>>it;sort(v.begin(),v.end());int maxd=0;for(int i=v.size()-1;i-2>=0;i--){if(v[i]+v[i-1]>v[i-2]&&v[i]-v[i-1]<v[i-2]){maxd=max(maxd,v[i]+v[i-1]+v[i-2]);break;}}if(maxd) cout<<maxd<<endl;else cout<<-1<<endl;}
}

E.约会故事

输入样例:

3 2
00:03 00:47
00:30 01:23
12:00 17:00
Lemonade Cappuccino
5
00:35
12:00 12:00
Cappuccino
01:23
13:00 12:59
Cappuccino
01:15
11:00 12:43
WaTer
01:24
09:24 11:00
Lemonade
23:59
08:00 07:43
LeMonade

输出样例:

Winner xqq
Joker xqq
Joker xqq
Loser xqq
Loser xqq

思路:一个模拟题,首先我们该如何判断xqq发出邀请的时间是在小c的开心时间呢,其实我们只需要将小c每次开心的起始时间和结束时间,转化为分钟,用一个数组标记即可,我们还要注意可能会存在跨天的情况,此时结束时间小于开始时间,我们只需要标记0分钟到结束时间的分钟就可以了,具体请看代码(这道题用stoi函数可以将字符串转化为整型)。

C++代码:

void solve()
{  cin>>n>>m;for(int i=0;i<n;i++){string s1,s2;cin>>s1>>s2;int h1=stoi(s1.substr(0,2));int m1=stoi(s1.substr(3,2));int t1=h1*60+m1;int h2=stoi(s2.substr(0,2));int m2=stoi(s2.substr(3,2));int t2=h2*60+m2;if(t1<t2){for(int i=t1;i<=t2;i++) a[i]=1;}else{for(int i=0;i<=t2;i++) a[i]=1;}}  set<string> s;for(int i=0;i<m;i++){string b;cin>>b;s.insert(b);} cin>>q;while(q--){string tim,s1,s2,s3;cin>>tim>>s1>>s2>>s3;int h=stoi(tim.substr(0,2));int m=stoi(tim.substr(3,2));int t=h*60+m;int h1=stoi(s1.substr(0,2));int m1=stoi(s1.substr(3,2));int t1=h1*60+m1;int h2=stoi(s2.substr(0,2));int m2=stoi(s2.substr(3,2));int t2=h2*60+m2;if(t>119||!a[t]){puts("Loser xqq");continue;}if(t1>t2||!s.count(s3))puts("Joker xqq");else puts("Winner xqq");}
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com