Codeforces Round #668 (Div. 2)A-C题解
A. Permutation Forgery
题目:http://codeforces.com/contest/1405/problem/A
题解:这道题初看有点吓人,一开始居然想到要用全排序,没错我真傻,TLE,之后再想后发现,将数组反过来,两两相加的和和正着的是一样的,因此我们只需将数组倒叙即可。
代码:
#include<bits/stdc++.h> //POJ不支持
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
using namespace std;
const long long inf = 1e12;//无穷大
const int maxn = ;//最大值。
typedef long long ll; ll a[],t,n; int main()
{
IOS;
int i,j;
cin>>t;
while(t--)
{
cin>>n;
for(i=;i<n;i++)
cin>>a[i];
reverse(a,a+n);
for(i=;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
return ;
}
B. Array Cancellation
题目:http://codeforces.com/contest/1405/problem/B
题解:
题意是当i<j,可以执行a[i]--,a[j]++,此操作是不消耗硬币的,而i>j的话需要消耗一个硬币,输出最小的消耗硬币
我们的解法是:从头进行遍历,若为正数则ans相加,统计i之前的正数之和,若为负数,判断ans是否能将其中和为0,若可以则ans+=a[i],否则ans=0,a[i]+=ans,最后遍历完之后,将不用消耗硬币的操作做完,剩余的所有负数即为需要消耗硬币才能将其置为0的操作,因此可以在第一次遍历是就将剩余的负数统计一下。
代码:
#include<bits/stdc++.h> //POJ不支持
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
using namespace std;
const long long inf = 1e12;//无穷大
const int maxn = ;//最大值。
typedef long long ll; ll a[maxn],n,ans,ans2;
int main()
{
IOS;
int i,j,t;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
ans=,ans2=;
for(i=;i<n;i++)
{
scanf("%lld",&a[i]);
}
for(i=;i<n;i++)
{
if(a[i]>)
ans+=a[i];
else
{
if(ans+a[i]>)
ans+=a[i];
else
{
a[i]+=ans;
ans=;
ans2-=a[i];
}
}
}
printf("%lld\n",ans2);
}
return ;
}
C. Balanced Bitstring
题目:考虑第一段0123和第二段1234,其中123是相同的,即只需要使得0和4相同即可,即为同余位置的字符相同即可
最后检查一下0~k的位置的0和1的数量是否满足我们上面的假设即可
代码:
#include<bits/stdc++.h>
using namespace std;
const long long inf = 1e12;//无穷大
const int maxn = ;//最大值。
typedef long long ll;
char s[maxn];
int t,n,k; bool check()
{
int v0=,v1=,i,j;
for(i=;i<=k;i++)
{
v0=v1=;
for(j=i;j<=n;j+=k)
{
if(s[j]=='')
v1=;
if(s[j]=='')
v0=;
}
//若同余位置的数字不相等,直接退出
if(v0&&v1)
return false;
for(j=i;j<=n;j+=k)
{
//将同余位置为?的替换成应该出现的数字
if(s[j]=='?')
{
if(v0)
s[j]='';
else if(v1)
s[j]='';
}
}
}
v0=v1=;
//统计前k个字符终0和1的个数,是否过半,过半则no
for(i=;i<=k;i++)
{
if(s[i]=='')
v1++;
else if(s[i]=='')
v0++;
}
if(v0>k/||v1>k/)
return false;
return true;
} int main()
{
cin>>t;
while(t--)
{
cin>>n>>k;
scanf("%s",s+);
if(check())
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return ;
}
Codeforces Round #668 (Div. 2)A-C题解的更多相关文章
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Codeforces Round #672 (Div. 2) A - C1题解
[Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...
- Codeforces Round #668 (Div. 2) D. Tree Tag 题解(博弈)
题目链接 题目大意 给你一颗树,Alice在a点,Bob在b点,Alice最多走da步,Bob最多走db步,两人轮流走路.要你判断经过无数次追赶后,Alice是否可以追上Bob,两人进行的都是最优策略 ...
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- Codeforces Round #610 (Div. 2) A-E简要题解
contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...
- Codeforces Round #611 (Div. 3) A-F简要题解
contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...
- Codeforces Round #668 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1405 A. Permutation Forgery 题意 给出一个大小为 $n$ 的排列 $p$,定义 \begin{equ ...
- Codeforces Round #499 (Div. 2) D. Rocket题解
题目: http://codeforces.com/contest/1011/problem/D This is an interactive problem. Natasha is going to ...
随机推荐
- 016_go语言中的递归
代码演示 package main import "fmt" func fact(n int) int { if n == 0 { return 1 } return n * fa ...
- Flink中的window、watermark和ProcessFunction
一.Flink中的window 1,window简述 window 是一种切割无限数据为有限块进行处理的手段.Window 是无限数据流处理的核心,Window 将一个无限的 stream 拆分成有 ...
- Window Server2012 修改远程桌面端口号
Win + R 输入 regedit 打开注册表编辑器 在注册表编辑器中找到 PortNumber 双击 PortNumber,选择10进制,修改想要的端口号 把修改的端口添加为入站规则 重启 Rem ...
- Docker 快速搭建 MySQL 5.6 开发环境
使用 Docker 快速搭建一个 MySQL 5.6 开发环境 步骤 获取镜像 docker pull mysql:5.6 启动容器,密码 123456,映射 3306 端口 docker run - ...
- Vuex mapAction的基本使用
mapAction-store中的异步方法 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new ...
- 使用pytorchviz进行模型可视化出现 'NoneType' object has no attribute 'grad_fn'
问题 最近学习pytorch, 原来用kreas重现的模型改为用pytorch实现训练,因为这样给模型的操作更加细致, 对模型的掌控更好. 当我写好一个模型 出现了这个问题 使用pytorchviz进 ...
- HTML基础-06
网页背景 1. 设置背景颜色 background-color:#bfa; 设置背景图片 background-image:url(“./img/... ...
- 【SDOI2009】 HH的项链 - 莫队
题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...
- JavaScript学习系列博客_26_JavaScript 数组的一些方法
数组的一些方法 - push() - 用来向数组的末尾添加一个或多个元素,并返回数组新的长度 - 语法:数组.push(元素1,元素2,元素N) - pop() - 用来删除数组的最后一个元素,并返回 ...
- 瑞发科NS1081主控 + THGBM5G7A2JBAIR(eMMC) 制作16GB闪存驱动器
文档标识符:NS1081_FLASH-DRIVE_D-P9 作者:DLHC 最后修改日期:2020.8.22 本文链接:https://www.cnblogs.com/DLHC-TECH/p/NS10 ...