Codeforces Round #750

  • A. Luntik and Concerts
  • B. Luntik and Subsequences
  • C. Grandma Capa Knits a Scarf
  • D. Vupsen, Pupsen and 0
  • E. Pchelyonok and Segments

A. Luntik and Concerts

题目

题意
有a个1 b个2 c个3 现在将这些数分成两组 问两组的和 最小的差值是多少

思路
计算数的总和 是否能被2整除 能整除的就是0 不能被整除的就是1

代码

#include<iostream>using namespace std;
typedef long long ll;
ll t,a,b,c;int main()
{ios::sync_with_stdio(false);cin>>t;while(t--){cin>>a>>b>>c;cout<<(a+b*2+c*3)%2<<endl;}return 0;
}

B. Luntik and Subsequences

题目

题意
给一个数组 数字总和和为s 问数组有多少个子数组的数字和为s-1

思路
子数组和为s-1 必然是原数组减去一个1 所以首先记录原数组有多少个1
子数组减去任意个0和都不变 计算0的个数cnt对每个1的贡献值 2^cnt次
相乘得出结果

代码

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;ll t,n,te;int main()
{ios::sync_with_stdio(false);cin>>t;while(t--){ll num1=0,num0=0;cin>>n;for(int i=0;i<n;i++){cin>>te;if(te==1)num1++;else if(te==0)num0++;}if(num1){cout<<num1*(1ll<<num0)<<endl;}elsecout<<0<<endl;}return 0;
}

C. Grandma Capa Knits a Scarf

题目

题意
给一个字符串 删除任意个 一种字母使它成为回文串 问最少删除几个字符能变成回文串 不能输出 -1

思路
用a到z去尝试 从字符串两边向中间去匹配 两边相同就向中间走 如果有一边等于当前尝试的字符 就尝试去删除(跳过这一位 让下一位跟另一边相匹配) 否则就表示不能通过删除当前字符使得原串变成回文串

代码

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;ll t,n,te;
string s;int main()
{ios::sync_with_stdio(false);cin>>t;while(t--){cin>>n;cin>>s;int mmin=n+1;for(char i='a';i<='z';i++){int ans=0,l=0,r=n-1,flag=1;while(l<r){if(s[l]==s[r]){l++;r--;}else if(s[l]==i){l++;ans++;}else if(s[r]==i){r--;ans++;}else{flag=0;break;}}if(flag)mmin=min(ans,mmin);}if(mmin>n)mmin=-1;cout<<mmin<<endl;}return 0;
}

D. Vupsen, Pupsen and 0

题目

题意
给一个长度为n不含0的数组a 现要求找到另一个不含0的数组b 使得sum(a1xb1+ …aixbi…)和为0 同时要求sum(b1+b2+…)和不超过1e9

思路
已知 任意一个数x其他数的和=其他每个数x这个数 的和
同时 也可以采用两两抵消的原则
综合以上两种思路 当n%2==0就采用两两抵消
否则就让其中3个数进行策略1(求两个和不为0的值 让第3个数对应的bi=这个值取反 其他两个数的bi=第3个数)

代码

#include<iostream>
#include<cmath>
#define N 100005
using namespace std;
typedef long long ll;ll t,n,te,a[N];
string s;int main()
{ios::sync_with_stdio(false);cin>>t;while(t--){ll sum=0,mmin=200005;int flag=0;cin>>n;for(int i=0;i<n;i++){cin>>a[i];sum+=a[i];}for(int i=0;i<n;i++){if(sum-a[i]!=0&&mmin>a[i]){flag=i;mmin=a[i];}}//ll ssum=0;if(n%2==0){for(int i=0;i<n;i+=2){cout<<-a[i+1]<<" "<<a[i]<<" ";}cout<<endl;continue;}for(int i=0;i<n-3;i+=2){cout<<-a[i+1]<<" "<<a[i]<<" ";}if(a[n-1]+a[n-2]!=0){cout<<-(a[n-1]+a[n-2])<<" "<<a[n-3]<<" "<<a[n-3]<<endl;}else if(a[n-2]+a[n-3]!=0){cout<<a[n-1]<<" "<<a[n-1]<<" "<<-(a[n-2]+a[n-3])<<endl;}else{cout<<a[n-2]<<" "<<-(a[n-1]+a[n-3])<<" "<<a[n-2]<<endl;}}return 0;
}

E. Pchelyonok and Segments

题目

题意
给一个数组a 切成k个非重叠片段 前面的片段比后面相邻的片段长度长1 且片段总和严格递增 问k的最大值

思路
逆序看 是一个 长度不断增加 值不断减小的dp

代码

#include<iostream>
#include<cmath>
#include<cstring>
#define N 100005
using namespace std;
typedef long long ll;ll t,n,te,a[N],sum[N],dp[N][455];
string s;int main()
{ios::sync_with_stdio(false);cin>>t;while(t--){cin>>n;sum[0]=0;a[0]=0;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}for(int i=1;i<=n+1;i++){for(int j=1;j<450;j++)dp[i][j]=0;}dp[n][1]=a[n];int ans=-1;for(int i=n;i>=1;i--){for(int j=1;j<450;j++){if(i+j-1>n)continue;te=sum[i+j-1]-sum[i-1];if(dp[i+j][j-1]>te||j==1){dp[i][j]=te;ans=max(ans,j);}dp[i][j]=max(dp[i+1][j],dp[i][j]);}}cout<<ans<<'\n';}return 0;}

Codeforces Round #750 (Div. 2) a-d相关推荐

  1. Codeforces Round #750 (Div. 2)

    ):稍微补一下. A. Luntik and Concerts void solve(){int a,b,c;scanf("%d%d%d",&a,&b,&c ...

  2. Codeforces Round #750 (Div. 2)A-F1补题题解

    A **题目描述:**有 a 首 1分钟的歌,b 首 2 分钟的歌,c首 3 分钟的歌.要分在两场音乐会,问最小的差是多少. 这道题的关键是题上说a,b,c,均不为0,这样的话三种歌总能被独立的分在两 ...

  3. Codeforces Round #750 (Div. 2)E. Pchelyonok and Segments (数学+DP)

    链接 君子,修身齐家,治国平天下. 题意: Pchelyonok决定给Mila一件礼物.Pchelyonok已经"买"了一个长度为 n 的数组 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. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
  2. Linux(centos6.0)下安装Node.js以及使用
  3. 查看mysql8日志_mysql8 参考手册--通用查询日志
  4. 中的数组怎么转成结构体_传说中的“衡水体”应该怎么练?
  5. python输出关键字的行号_python – 使用关键字行号创建字典
  6. mysql8.0.12不能用_使用最新版本MySQL8.0.12报错记录
  7. redis cluster中添加删除重分配节点例子
  8. c++教你唱响天空之城(源码奉上)
  9. 背景图页面缩小会变形_CSS背景图拉伸不变形
  10. 悟空问答python反爬_Python写个爬虫碰到反爬了,怎么办那就动手破坏它!
  11. 揭秘linux启动过程
  12. 服务器怎么连接?服务器远程连接图文教程Windows如何远程连接服务器?Linux服务器如何远程登录?远程连接服务器命令
  13. .NetCore微信支付+服务商模式(saas)
  14. 【Pytorch-从一团乱麻到入门】:4、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(1)
  15. CSP 2022 复赛游记
  16. 用户流失与回归 | Google Play 应用与游戏用户体验指南 (四)
  17. 使用NowSMS Gateway来接收发送短信和彩信
  18. html顺序进场动画,十六种炫酷纯css加载动画(一)
  19. PHP,在Mac上轻松搭建开发环境,基于BitNami MAMP Stack
  20. python爬虫图片加速_Python爬虫加速神器的小试

热门文章

  1. 阿里云服务器无法远程桌面连接
  2. Word术语A4(210×297)上、下3.8cm,左、右3.2cm,页眉、页脚3.0cm如何在LaTeX中设置
  3. 《数据安全法》发布后为什么数据保护官DPO变得炙手可热?
  4. NTSTATUS 状态码
  5. 会议那些事儿(三):组织有效的会议
  6. C语言——字符串+内存函数及其模拟实现
  7. 关于公众号wifi强制推送的一些想法
  8. Linux驱动基础:MSM平台IOMMU
  9. 思博伦仪表模拟DHCP动态地址获取
  10. Linux下数据盘挂载、分区、卸载