Codeforces Round #664 (Div. 2)

写了三个题结果C fst了O.0

A - Boboniu Likes to Color Balls

回文串,最多有球是一个奇数个。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{IO;int T;cin>>T;while(T--){int a,b,c,d;cin>>a>>b>>c>>d;int cnt=(a&1)+(b&1)+(c&1)+(d&1);if(cnt==0||cnt==1||cnt==4) cout<<"Yes"<<endl;//如果全是4个奇数可以用rgb换一个w,那么就变成全是偶数个else if(cnt==2) cout<<"No"<<endl;else{if(a*b*c) cout<<"Yes"<<endl;else cout<<"No"<<endl;//说明rgb中有球的个数是0 不能换球}}return 0;
}

B - Boboniu Plays Chess

直接模拟,一行一行走,先走完最初所在的行,然后从第一行开始S型走

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=210;
int n,m;
int u,v;
bool st[N];
int main()
{IO;cin>>n>>m;cin>>u>>v;cout<<u<<" "<<v<<endl;st[u]=1;for(int i=1;i<=m;i++)if(i!=v) cout<<u<<" "<<i<<endl;int v=m;for(int i=1;i<=n;i++){if(st[i]) continue;st[i]=1;if(v==m) {for(int j=m;j;j--)cout<<i<<" "<<j<<endl;v=1;}else{for(int j=1;j<=m;j++)cout<<i<<" "<<j<<endl;v=m;}}return 0;
}

C - Boboniu and Bit Operations

贪心的取cic_ici最小最终OR最小不正确。如果某一位必须是1,那么其他cic_ici的该位是否为1就不重要了。
最开始想用trie树实现贪心cic_ici,结果后来一想不正确,就随便写了个dp没想的过了???(结果还是被FST
原因还是上述贪心方法不正确。

FST代码——O(n3)O(n^3)O(n3)
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=210;
int a[N],b[N];
int n,m;
int f[N][N];
int main()
{IO;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];memset(f,0x3f,sizeof f);for(int i=1;i<=m;i++) f[0][i]=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)for(int k=1;k<=j;k++) f[i][j]=min(f[i][j],f[i-1][j]|(a[i]&b[k]));cout<<f[n][m]<<endl;return 0;
}

正解是枚举答案。我也想过枚举答案可是不知道怎么判断答案是否复合tcl。
如果枚举答案kkk,那么对于每一个aia_iai都能找一个bjb_jbj使得a[i]&b[j]二进制中1出现的位置答案中必须也出现,即(a[i]&b[j])|k==k,一一判断即可

正解——O(29nm)O(2^9nm)O(29nm)
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
const int N=210;
int a[N],b[N];
int n,m;
int main()
{IO;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];for(int k=0;k<1<<9;k++){bool ok1=1;for(int i=1;i<=n;i++){bool ok2=0;for(int j=1;j<=m;j++)if(((a[i]&b[j])|k)==k){ok2=1;break;}if(!ok2){ok1=0;break;}}if(ok1) return cout<<k<<'\n',0;}
}

D - Boboniu Chats with Du

复制数组!!!
分析题目可以简化成如果ai<=ma_i<=mai<=m那么代价是111,如果ai>ma_i>mai>m代价是d+1d+1d+1很明显是一个01背包,不过数据范围。。。
从集合角度考虑:不妨让小于等于m的放在a[]数组并逆序,大于m放在b[]数组同样逆序,最终的答案一定是a[]数组选出前i个,从b[]数组选出前j个。因此我们可以枚举从b[]数组选择了多少个,然后剩余的从a[]数组选即可。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
const int N=100010;
ll a[N],b[N];
int cnta,cntb;
int n,d;
ll m;
int main()
{IO;cin>>n>>d>>m;for(int i=1;i<=n;i++){ll x;cin>>x;if(x>m) b[++cntb]=x;else a[++cnta]=x;}sort(a+1,a+1+cnta);sort(b+1,b+1+cntb);reverse(a+1,a+1+cnta);reverse(b+1,b+1+cntb);for(int i=1;i<=cnta;i++) a[i]+=a[i-1];for(int i=cnta+1;i<=n;i++) a[i]=a[i-1];//这个地方非常dt 需要赋值一份for(int i=1;i<=cntb;i++) b[i]+=b[i-1];ll res=0;int cntm=min(cntb,(n+d)/(d+1));for(int k=0;k<=cntm;k++){//如果不进行上述复制操作 如果n-(d+1)*(k-1)-1>cnt a[n-(d+1)*(k-1)-1]=0 理论应该是所有a[cnta]ll now=b[k];if(k) now+=a[n-(d+1)*(k-1)-1];//如果不进行上述复制那么now+=a[min(cnta,n-(d+1)*(k-1)-1]else now+=a[n];//now+=a[cnta]res=max(res,now);}cout<<res<<endl;return 0;
}

emm~~看E群里面讨论的很难 随缘补吧。要加油哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020 年百度之星·程序设计大赛 - 初赛一

2020 年百度之星程序设计大赛 - 初赛一 [toc] 6743 Drink 题解&#xff1a; 每一种饮料求一个卡路里&#xff0c;取最小值 第一看以为是背包&#xff0c;其实出题人在第二层 代码&#xff1a; #include<iostream> #include<cstdio> #include<string> #i…

.Net Core应用框架Util介绍(四)

上篇介绍了Util Angular Demo的目录结构和运行机制&#xff0c;本文介绍Util封装Angular的基本手法及背后的动机。Angular应用由Ts和Html两部分构成&#xff0c;本文介绍第一部分。Angular Ts的封装Ts是Angular的代码部分&#xff0c;用于编写页面逻辑。依赖注入( Dependency I…

【AC自动机】AC自动机(二次加强版)(luogu 5357)

正题 luogu 5357 题目大意 给你若干单词和一个字符串&#xff0c;让你查询每个单词在字符串中出现的次数 解题思路 AC自动机模板 先把单词丢进去&#xff0c;然后拿字符串去跑&#xff0c;每到一个点累计答案 因为数据较大&#xff0c;所以要先存起来&#xff0c;跑完后按…

Educational Codeforces Round 93 (Rated for Div. 2)

A - Bad Triangle 选出三个序列使之不能组成三角形。先把差距最大的选了&#xff0c;枚举中间值。两边之和不大于第三边。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<iostream> #include<algorithm> using namespace std; const i…

P4198-楼房重建【线段树】

正题 题目链接:https://www.luogu.com.cn/problem/P4198 题目大意 nnn条线&#xff0c;开始时第iii条是(i,0)(i,0)(i,0)的一个点。 每次有操作把第xxx条线变成(x,0)(x,0)(x,0)到(x,y)(x,y)(x,y)。然后求从(0,0)(0,0)(0,0)能看到几条线。 解题思路 把线变成斜率的话就是对于每…

2020牛客暑期多校训练营(第四场)

2020牛客暑期多校训练营&#xff08;第四场&#xff09; 这场属实有点难受 文章目录A Ancient DistanceB Basic Gcd Problem题目代码&#xff1a;C Count New StringD Dividing StringsE EliminateF Finding the Order题意&#xff1a;题解&#xff1a;代码&#xff1a;G Geome…

《C# 程序员的自我修养》送书活动结果公布

截止到9月28日24&#xff1a;00 &#xff0c;本次送书活动《C# 程序员的自我修养》共收到150多位同学参与回复。以下5位同学将获赠书籍一本&#xff1a;夏树、Damon、水墨清华、天天、kang以上同学请加小二微信领取赠书小二微信&#xff1a;geffzhang.NET社区新闻&#xff0c;深…

【AC自动机】单词(luogu 3966/ybtoj AC自动机-2)

正题 luogu 3966 ybtoj AC自动机-2 题目大意 给你n个单词&#xff0c;让你查询这写单词分别在这n个单词中出现过多少次 解题思路 先用AC自动机建好图&#xff0c;然后每个点的权值为1&#xff0c;然后向nx传递 代码 #include<cstdio> #include<cstring> #inclu…

AtCoder Beginner Contest 175总结

这次做了ABCE~ A - Rainy Season 懒得想直接分类讨论 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<string> #include<iostream> using namespace std; int main() {string s;cin>>s;int res0;if(s[0]R&&s[1]R&&a…

P5607-[Ynoi2013]无力回天NOI2017【线性基,线段树,树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P5607 题目大意 nnn个数字的序列&#xff0c;mmm次操作 区间[l,r][l,r][l,r]异或上一个值vvv询问区间[l,r][l,r][l,r]中选出一些数来异或的最大异或和 解题思路 最大异或和的话只能是线性基了&#xff0c;但是线性基的区间修…

牛客算法周周练15

牛客算法周周练15 文章目录A 数列下标B 可持久化动态图上树状数组维护01背包C 璀璨光滑D 树上求和E 算式子A 数列下标 题意很明确&#xff0c;再看看数据&#xff0c;所以我们直接两重循环&#xff0c;用数组b来记录右边第一个大的数的下标 代码&#xff1a; #include<bit…

使用 dotTrace 分析 .NET Core 代码问题

0.背景在项目开发之中&#xff0c;前期可能主要以保证任务完成为主&#xff0c;对于性能优化主要在于开发完成之后再来进行。可能在测试的时候发现部分接口的代码执行时间过长&#xff0c;但是又毫无头绪&#xff0c;这个时候你就需要性能分析工具来协助你排查问题了。常规性能…

【AC自动机】前缀匹配(ybtoj AC自动机-3)

正题 ybtoj AC自动机-3 题目大意 给你一个字符串和若干匹配串&#xff0c;问你匹配串的前缀和字符串的最大匹配 解题思路 先把所有匹配串丢进AC自动机&#xff0c;然后拿字符串去跑 每次只在当前位置存下贡献&#xff0c;然后按bfs的倒叙传递贡献&#xff0c;最后再倒着跑每…

Codeforces Global Round 10

这种大场全是神仙打架&#xff0c;向我这种菜菜就是掉分www太难了 神仙打架&#xff0c;百姓遭殃。 A - Omkar and Password 分析可以知道&#xff0c;只要数组元素不是全部相等答案就是1&#xff0c;如何数组元素全部相等答案就是n。 #define IO ios::sync_with_stdio(fals…

【每日一题】7月17日题目精讲—BOWL 碗的叠放

【每日一题】7月17日题目精讲—BOWL 碗的叠放 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 小H有n个碗需要放进橱柜&#xff0c;她希望将他们叠起来放置。你知道每个碗都…

基于Ocelot的gRpcHttp网关

什么是gRpcHttp网关通俗的讲就是将gRpc提供的服务以rest api的形式提供出去&#xff0c;不需要再单独的写一个webapi去做这件事。gRpcHttp网关好处减少不必要代码&#xff0c;减少中间层提高通讯效率。以前可能是这样用了gRpc网关后是这样gRpcHttp网关提供哪些功能可以直接加载…

CF917D-Stranger Trees【矩阵树定理,高斯消元】

正题 题目链接:https://www.luogu.com.cn/problem/CF917D 题目大意 给出nnn个点的一棵树&#xff0c;对于每个kkk求有多少个nnn个点的树满足与给出的树恰好有kkk条边重合。 解题思路 矩阵树有一个统计所有树边权和的和用法&#xff0c;就是把变量变成一个形如wx1wx1wx1的多项…

【AC自动机】屏蔽词删除(ybtoj AC自动机-4)

正题 ybtoj AC自动机-4 题目大意 有一个字符串和若干要删除的串&#xff08;不存在包含关系&#xff09;&#xff0c;每次从前往后搜&#xff0c;搜到第一个要删除的串然后删掉&#xff0c;再从0开始搜 问你最后得到的字符串 解题思路 先把所有删除串丢进AC自动机中&#x…

Codeforces Round #665 (Div. 2)

2020/8/21 晚上打完球就22:10了&#xff0c;愣是没报上名&#xff08;cf打不开&#xff0c;然后就做了一下赛后交的过了3个题 A - Distance and Axis 数学题分类讨论一下即可 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #inclu…

【每日一题】7月20日题目精讲—着色方案

来源&#xff1a;牛客网&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 有n个木块排成一行&#xff0c;从左…