Codeforces Round #657 (Div. 2)
A. Acacius and String
爆零!太菜了,下来终于把A题代码调AC
了
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int n;
string res="abacaba";
int main()
{IO;int T;cin>>T;while(T--){cin>>n;string s;cin>>s;int flag=0;for(int i=0;i+6<n;i++)if(s.substr(i,7)==res) flag++;if(flag>1) cout<<"No"<<endl;else if(flag==1){cout<<"Yes"<<endl;for(auto t:s){if(t=='?') cout<<'e';else cout<<t;}cout<<endl;}else{for(int i=0,j=0;i<n;i++){if(s[i]=='?'||s[i]==res[j]){j++;if(j==7){if((i+4<n&&"aba"+s.substr(i+1,4)==res)||(i>=10&&s.substr(i-10,4)+"aba"==res)){j=0;i=i-6;}else {for(int x=i-6,y=0;y<7;x++,y++) s[x]=res[y];break;}}}else{i=i-j;j=0;}}for(int i=0;i+6<n;i++)if(s.substr(i,7)==res) flag++;if(flag>1) cout<<"No"<<endl;else if(flag==1){cout<<"Yes"<<endl;for(auto t:s){if(t=='?') cout<<'e';else cout<<t;}cout<<endl;}else cout<<"No"<<endl;}}return 0;
}
B. Dubious Cyrpto
赛后补题瞎搞,直接AC
了自己都很迷
na+b−c=mna+b-c=mna+b−c=m稍微化简一下na=m+c−bna=m+c-bna=m+c−b,然后对于右边一项的范围是[m+l−r,m−l+r][m+l-r,m-l+r][m+l−r,m−l+r],即代码中的[lmin,lmax]
,然后枚举a
,考虑lmina\frac{lmin}{a}almin和lmaxa\frac{lmax}{a}almax,如果lmina<lmaxa\frac{lmin}{a} < \frac{lmax}{a}almin<almax,那么由于下取整,lmaxa\frac{lmax}{a}almax肯定能够整除aaa,如果lmina=lmaxa\frac{lmin}{a}=\frac{lmax}{a}almin=almax,考虑他俩之间是否有能够整除aaa的即可,其他情况均不能整除aaa,然后就可以知道c−bc-bc−b的差na−mna-mna−m,然后枚举bbb,求个在范围中的ccc输出即可
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll l,r,m;
int main()
{IO;int T;cin>>T;while(T--){cin>>l>>r>>m;ll lmin=m+l-r,lmax=m+r-l;ll n=-1,b=-1,c=-1,x=r;int a;for(a=l;a<=r;a++){if(lmin/a<lmax/a){n=lmax/a;x=a*n-m;break;}else{if(lmin%a==0){n=lmin/a;x=a*n-m;break;}else if(lmax%a==0){n=lmax/a;x=a*n-m;break;}}}for(int b=l;b<=r;b++){if(x+b>=l&&x+b<=r){cout<<a<<" "<<b<<" "<<x+b<<endl;break;}}}return 0;
}
C. Choosing flowers
贪心+枚举+二分
首先容易证明最优解肯定只选择一种花多次(贪心),然后先对flower[i].a
降序排列,枚举最终选择哪一种花多次,不妨假设最后选flower[i]
多次,对于其他花的a
如果大于flower[i].b
肯定是需要选上,因此可以二分边界,然后分类一下就可以了。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
#define a first
#define b second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=100010;
pii flower[N];
int n,m;
ll s[N];
int main()
{IO;int T;cin>>T;while(T--){cin>>m>>n;for(int i=1;i<=n;i++) cin>>flower[i].a>>flower[i].b;sort(flower+1,flower+1+n);reverse(flower+1,flower+1+n);for(int i=1;i<=n;i++) s[i]=s[i-1]+1ll*flower[i].a;ll res=0;for(int i=1;i<=n;i++){int l=0,r=n;//注意边界l=0,如果所有flower的a值都小于枚举的b值最终应该是0while(l<r){int mid=l+r+1>>1;if(flower[mid].a>flower[i].b) l=mid;else r=mid-1;}if(m<=l) res=max(res,s[m]);else{if(i<=l) res=max(res,s[l]+1ll*flower[i].b*(m-l));else res=max(res,s[l]+1ll*flower[i].a+1ll*flower[i].b*(m-l-1));}}cout<<res<<endl;}return 0;
}
希望今天的div2不爆零,要加油哦!
Codeforces Round #657 (Div. 2)相关推荐
- Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto
m是被除数,a是除数,n的商,b-c是余数.切记,考虑b-c是负数的情况.切记 !切记 ! 二话不说上代码: #include <iostream> #include <algori ...
- Codeforces Round #657 (Div. 2) B. Dubious Cyrpto(思维,数学)
题目链接 题意: m=n⋅a+b−c(n为任意正整数),给出m的值a,b,c的范围l,r(l<=a,b,c<=r),求出a,b,c. 思路: 由推倒知0<=|b-c|<=r-l ...
- Codeforces Round #657 (Div. 2)B. Dubious Cyrpto
思路 题目要求: na+b−c=mna+b-c=m na+b−c=m 我们可以转换为 na−m=c−bna-m=c-b na−m=c−b 然后c−bc-bc−b是固定不变的,我们去枚举a,在枚举的a的 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
最新文章
- scrum 敏捷开发
- junit jumpstart
- bootstrap datetimepicker的一些小总结
- BurpSuite插件 -- FastjsonScan(反序列化检测)
- android adb命令使用
- 在Fedora 11中安装Apache2+PHP5+MySQL(LAMP)
- phpMailer在CentOS 6.5下无法发送邮件的解决办法
- HDFS API操作的访问方式及JUnit测试类的使用
- python数据分析:Matplotlib
- Builder模式创建pojo类
- FroalaEditor使用方法汇总
- Golang系列(四)之面向接口编程
- 利用MATLAB解特征方程,并画出特征根的分布,便于分析系统的稳定性
- 如何下载大同市卫星地图高清版大图
- 19年清北学堂冬令营游记
- 如何在PPT中设置选择题
- ES2015部分新特性示例
- 2017年总结和计划
- 微分,泰勒公式及其在图像处理中的应用
- 线性代数(六)——二次型
热门文章
- java导入导出excel_Java导入导出Excel工具 easyexcel
- python lock_python lock一步步教你理解Python装饰器
- 用python画树_Python+Turtle动态绘制一棵树实例分享
- office连接oracle,Access(VBA)连接Oracle数据库的代码
- java io 读取多个对象_Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream详解...
- matlab eval函数_matlab自动给变量命名
- python os system_python中os. popen system的区别
- requestPermissions读写手机存储权限_泛圈云盘可为企业建立高效安全的云办公在线协同文档存储?...
- 计算机一级文档题,计算机一级模拟题
- [mybatis]映射文件_select_resultMap_关联查询_association分步查询延迟加载