牛客周赛 Round 56
\(A\) 牛客 NC277678 面包店故事 \(AC\)
-
选择结构。
点击查看代码
int main() {int x,y,n;cin>>x>>y>>n;if(x+y<=n){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}return 0; }
\(B\) 牛客 NC277594 放课后故事 \(AC\)
-
顺序结构。
点击查看代码
int main() {ll n,m,k,x,sum=0,i;cin>>n>>m>>k;for(i=1;i<=n;i++){cin>>x;sum+=x;}cout<<min(m+1,sum/k)<<endl;return 0; }
\(C\) 牛客 NC277217 异或故事 \(AC\)
-
考虑钦定一个数 \(b\) ,然后令 \(c=a \bigoplus b\) 。
-
不妨让 \(b,c \le a\) 那么 \(b=\operatorname{lowbit}(a)\) 是个不错的选择。
-
特判 \(2^{k}(k \in \mathbb{N})\) 的情况。
点击查看代码
int lowbit(int x) {return (x&(-x)); } int main() {int t,x,i;cin>>t;for(i=1;i<=t;i++){cin>>x;if(x==1){cout<<2<<" "<<(x^2)<<endl;}else{if(__builtin_popcount(x)==1){cout<<1<<" "<<(x^1)<<endl; }else{cout<<lowbit(x)<<" "<<(x^lowbit(x))<<endl;}}}return 0; }
\(D\) 牛客 NC277596 构造故事 \(AC\)
-
排序后枚举相邻 \(3\) 个数判断即可。
点击查看代码
ll a[10010]; int main() {ll t,n,ans,i,j;cin>>t;for(j=1;j<=t;j++){cin>>n;ans=-1;for(i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+1+n);for(i=n;i>=3;i--){if(a[i-2]+a[i-1]>a[i]){ans=max(ans,a[i-2]+a[i-1]+a[i]);}}cout<<ans<<endl;}return 0; }
\(E\) 牛客 NC277601 约会故事 \(AC\)
-
将时间转化成 \(4\) 位数后就是一个简单的小模拟了。
-
注意开心的起止时间不在同一天的情况。
点击查看代码
int happy[3000]; map<string,int>vis; char tmp[10]; string s; int val(char x) {return x-'0'; } int to(char s[]) {return val(s[1])*1000+val(s[2])*100+val(s[4])*10+val(s[5]); } int main() {int n,m,q,st,ed,x,i,j,k;cin>>n>>m;for(i=1;i<=n;i++){cin>>(tmp+1);st=to(tmp);cin>>(tmp+1);ed=to(tmp);if(st==ed){fill(happy+0,happy+2600,1);}else{if(st<ed){fill(happy+st,happy+ed+1,1);}else{fill(happy+st,happy+2600,1);fill(happy+0,happy+ed+1,1);}}}for(i=1;i<=m;i++){cin>>s;vis[s]=1;}cin>>q;for(i=1;i<=q;i++){cin>>(tmp+1);x=to(tmp);cin>>(tmp+1);st=to(tmp);cin>>(tmp+1);ed=to(tmp);cin>>s;if(0<=x&&x<=159){if(happy[x]==0){cout<<"Loser xqq"<<endl;}else{if(st>ed||vis.find(s)==vis.end()){cout<<"Joker xqq"<<endl;}else {cout<<"Winner xqq"<<endl;}}}else{cout<<"Loser xqq"<<endl;}}return 0; }
\(F\) 牛客 NC277160 不是烤串故事
总结
- \(F\) 没立刻明白反转是什么意思,尝试 \(KMP,Trie\) 树,后缀树组无果。最后发现还得是二分哈希。
后记
- \(E\) 没明确说明开心的起止时间不在同一天时怎么处理,感觉和没说开心的开始时间与结束时间相等怎么处理一样恶劣。