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)相关推荐

  1. Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto

    m是被除数,a是除数,n的商,b-c是余数.切记,考虑b-c是负数的情况.切记 !切记 ! 二话不说上代码: #include <iostream> #include <algori ...

  2. 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 ...

  3. 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的 ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. 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 ...

  6. 构造 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 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. scrum 敏捷开发
  2. junit jumpstart
  3. bootstrap datetimepicker的一些小总结
  4. BurpSuite插件 -- FastjsonScan(反序列化检测)
  5. android adb命令使用
  6. 在Fedora 11中安装Apache2+PHP5+MySQL(LAMP)
  7. phpMailer在CentOS 6.5下无法发送邮件的解决办法
  8. HDFS API操作的访问方式及JUnit测试类的使用
  9. python数据分析:Matplotlib
  10. Builder模式创建pojo类
  11. FroalaEditor使用方法汇总
  12. Golang系列(四)之面向接口编程
  13. 利用MATLAB解特征方程,并画出特征根的分布,便于分析系统的稳定性
  14. 如何下载大同市卫星地图高清版大图
  15. 19年清北学堂冬令营游记
  16. 如何在PPT中设置选择题
  17. ES2015部分新特性示例
  18. 2017年总结和计划
  19. 微分,泰勒公式及其在图像处理中的应用
  20. 线性代数(六)——二次型

热门文章

  1. java导入导出excel_Java导入导出Excel工具 easyexcel
  2. python lock_python lock一步步教你理解Python装饰器
  3. 用python画树_Python+Turtle动态绘制一棵树实例分享
  4. office连接oracle,Access(VBA)连接Oracle数据库的代码
  5. java io 读取多个对象_Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream详解...
  6. matlab eval函数_matlab自动给变量命名
  7. python os system_python中os. popen system的区别
  8. requestPermissions读写手机存储权限_泛圈云盘可为企业建立高效安全的云办公在线协同文档存储?...
  9. 计算机一级文档题,计算机一级模拟题
  10. [mybatis]映射文件_select_resultMap_关联查询_association分步查询延迟加载