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