Codeforces Round #616 (Div. 2)
地址:http://codeforces.com/contest/1291
A题就不写解析了,就是给一个数,是不是本身满足这个条件或者删除某些数字来达到这个条件:奇数,各个位上的数字加起来是偶数。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s[];
int main()
{
int t;
cin>>t;
while(t--)
{
int n ;
cin>>n;
cin>>s;
int len = strlen(s);
int ji=,ou=;
int sum = ,ok=;
int mid;
for(int i= ;i <len;i++)
{
int k = s[i]-'';
sum+=k;
if(sum%==&&k%!=)
{
mid=i;ok=;
}
}
if(!ok)
cout<<"-1"<<endl;
else
{
//cout<<":: ";
for(int i=;i<=mid;i++)
cout<<s[i];
cout<<endl;
}
}
}
B题挺有意思:http://codeforces.com/contest/1291/problem/B
题意:给出n个数字,满足以下任意一个条件即为锐化:单调递增/单调递减/先增后减(尖)。如果本身不符合,可以对任意一个数进行-1的操作任意次,前提是保证>=0。
解析:由于我们可以对任意数字进行-1的操作任意次,所以我们可以把所给的数字进行更加直观化的变化: 比如 2 3 49 999 ----->> 0 1 2 3 。所以先记录单增结束的位置,这么判断呢,想象一下,从头往后放 0 1 2 3 2,如果出现了a[i]<i(比如i=4),说明什么?此时的i的前一位,a[i-1]=i-1,当前的a[i]<=i-1,那么它要么等于前一位,要么小于前一位,单增断掉了,所以就得到了单增结束的点。同理,记录从右往左的单增结束点,即正着看的单减的开始点(记得坐标转化为n-i-1)
结束点一个为L,一个为R,如果L<R,肯定是实现不了锐化的。比如: 012323210,L=3,R=5,L<R,中间那个a[i]<i数字的存在是无论如何也锐化不了数组的。所以只要保证L>=R即可。根据我目前的发现,只要L==R,那么可以变成先增后减,而L>R对应的是单点递增或者单调递减,如有其他情况还请指正!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 3e5+;
typedef long long ll;
ll a[maxn];
int main()
{
int t;
cin>>t;
while(t--)
{
int n ;
cin>>n;
for(int i=;i<n;i++)
cin>>a[i];
int l=n,r=;
for(int i=;i<n;i++)
{
if(a[i]<i)
break;
l=i;
}
for(int i=n-;i>=;i--)
{
if(a[i]<(n-i-))
break;
r=i;
}
if(l>=r)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}
Codeforces Round #616 (Div. 2)的更多相关文章
- Codeforces Round #616 (Div. 2) B. Array Sharpening
t题目链接:http://codeforces.com/contest/1291/problem/B 思路: 用极端的情况去考虑问题,会变得很简单. 无论是单调递增,单调递减,或者中间高两边低的情况都 ...
- Codeforces Round #616 (Div. 2) C. Mind Control
题目链接:http://codeforces.com/contest/1291/problem/C 思路: 我们可以很容易想到,只有前m-1个人才能影响m的选择的大小,后面的人无法影响. 如果所有人都 ...
- Codeforces Round #616 (Div. 2) D
莫队的模板 struct node{ int l,r,id; }q[maxn]; int cmp(node a,node b) { ) ? a.r < b.r : a.r > b.r); ...
- Codeforces Round #616 (Div. 2) 题解
A. Even But Not Even 题意: 定义一个数所有位置的和为偶数它本身不为偶数的数为ebne,现在给你一个数字字符串,你可以删除任意位置上的数字使其变为ebne输出任意改变后的结果,如果 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
随机推荐
- 利用Python进行多项式拟合
多项式拟合的简单代码: import matplotlib.pyplot as plt import numpy as np x=[,,,,,,,] y=[,,,,,,,] a=np.polyfit( ...
- IEEE Spectrum 2014年十大编程语言盘点
近日,IEEE Spectrum推出 了一个最流行的编程语言排行榜.排行榜筛选了 12 项指标,综合了 10 个来源(含 IEEE Xplore.Google.GitHub)的数据,最终评选出了下面这 ...
- k-近邻算法原理入门-机器学习
//2019.08.01下午机器学习算法1——k近邻算法1.k近邻算法是学习机器学习算法最为经典和简单的算法,它是机器学习算法入门最好的算法之一,可以非常好并且快速地理解机器学习的算法的框架与应用.2 ...
- (实例)Linux 内核添加exfat驱动
背景: 由于exfat是常用的文件系统格式,而Linux由于版权的问题,没有在官方中添加有关的驱动. 但是 微软也同意开源了,所以比较新的 Linux 会支持这一块. 为了支持exfat的驱动,我们需 ...
- 虚拟机安装安全狗apache服务的一些问题解决方式(11.5)
首先本文鸣谢bonga的解答大部分问题=.= 由于本人比较懒所以还是喜欢问,不喜欢查啦 1.windows网站安全狗分为:IIS 和 APACHE 版本 我下载的是APACHE版本 (因为 ...
- 原生JS写表单验证提交功能
先上效果图: 表单的基础内容就是昵称判断.手机号判断.邮箱判断.身份证号码判断,这里是用到正则验证检验格式. 页面的表单写法就是一个form的提交.输入框用input来实现,输入内容用value来获取 ...
- Python 必知的 20 个骚操作!
以下为译文: Python 是一个解释型语言,可读性与易用性让它越来越热门. 正如 Python 之禅中所述: 优美胜于丑陋,明了胜于晦涩. 在你的日常编码中,以下技巧可以给你带来意想不到的收获. ...
- select rank() over
select * from (select rank() over(partition by barcode order by sheetdate) num, * from ScanRecord wh ...
- gem5-gpu 全系统FS模式 系统调用SE模式
SE模式中无线程调度器,只能运行单线程程序,如SPEC CPU 2006,仅模拟片上CPU.GPU.Network和DRAM等. FS模式需加载虚拟Linux和磁盘,Linux负责线程调度.实现了Pt ...
- LCD驱动详解
参考文档:<液晶屏.pdf><S3C2440用户手册><JZ2440-V3原理图> frame buffer: 显存,用于存放LCD显示数据:frame buf ...