Codeforces Round #617 (Div. 3)
A
题意:能否将数组里面的值用数组里面的值替换出一个和为奇数的数组
思路:1.和为奇数yes 2.和为偶数但有奇数yes 3.个数是奇数的,有奇数的yes 其他都是no
果然罚时全给了A
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define mod 1000000007
const int maxn=1e5+;
int a,n,sum;
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
sum=;
int f=,f2=;
for(it i=;i<n;i++){
scanf("%d",&a);
sum+=a;if(a&){f=;}
if(a%==){f2=;}
}
if(sum& || (f== && n&) || (sum%== &&f== && f2==)){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return ;
}
B
题意:每花十元,可以得一元,问最多能花多少
思路:9的倍数特判(n-1)/9+n,其他 n/9+n就是答案
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define mod 1000000007
const int maxn=1e5+;
int a,n,sum;
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
if(n%==){
printf("%d\n",n+(n-)/);continue;
}
printf("%d\n",n+n/);
}
return ;
}
C
题意:如果有走过重复点,算出最小的步数的l和r值
思路:用map存点,模拟就行
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define mod 1000000007
const int maxn=2e5+;
int n,t;
struct node{
int x,y;
friend bool operator<(const node a,const node b){
if(a.x==b.x){
return a.y<b.y;
}
return a.x<b.x;
}
node(){}
node(int xx,int yy):x(xx),y(yy){}
};
char s[maxn];
map<node,int>mp;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
scanf("%s",s+);mp.clear();
int x=,y=;
mp[node(,)]=;
int f=,l,r,minb=maxn;
for(it i=;i<=n;i++){
if(s[i]=='L'){
x--;
}
else if(s[i]=='R'){
x++;
}
else if(s[i]=='U'){
y++;
}
else if(s[i]=='D'){
y--; }
if(mp[node(x,y)]==){
int kkk=i-;
if(kkk<minb){l=;r=i;minb=kkk;}f=;mp[node(x,y)]=i;
}
else if(mp[node(x,y)]){
int kkk=i-mp[node(x,y)];
if(kkk<minb){l=i-kkk+;r=i;minb=kkk;}f=;mp[node(x,y)]=i;
}
else{
mp[node(x,y)]=i;
}
//cout<<x<<y<<i<<endl;
}
if(f){
printf("-1\n");
}
else{
printf("%d %d\n",l,r);
}
}
return ;
}
D
居然比c题开的快,因为c题题目读了半天,读不懂直接跳了
题意:a和b的攻击力,有n个h1~hn的血条怪,有k个使得b跳过技能的招数,问a有多少次可以杀死怪的最后一血
思路:h1~hn都余上(a+b)==sheng,sheng<=a,总值加一,sheng>a的部分求出需要的k==(sheng-1)/a,存下来排序求最大总值
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define mod 1000000007
const int maxn=2e5+;
int n,a,b,k,h,s[maxn];
int main(){
scanf("%d%d%d%d",&n,&a,&b,&k);
//int kk=__gcd(a,b);
int c=a+b;
int sum=,t=;
for(int i=;i<n;i++){
scanf("%d",&h);
int sheng=h%c;
if(sheng==){sheng=c;}
//cout<<sheng<<endl;
if(sheng<=a){
sum++;
}
else{
s[t++]=(sheng-)/a;
}
}
sort(s,s+t);
for(it i=;i<t;i++){
if(k>=s[i]){
sum++;k-=s[i];
}
else{break;}
}
printf("%d\n",sum);
return ;
}
E1
我吐血了,死因s[i]>=s[j],多了等号,因为c题搞了半天,当时c题的读题和一直判不好(0,0)点导致时间没有,一看E1这么简单,暴力来,然后wa到比赛结束
然后看了数据,彻夜难眠……因为是暴力,所以代码就不放出来了,等补完了E2,直接放E2的代码。
upd:原来E2是多个颜色,数据扩大,那就还是贴一下E1的暴力代码了
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define mod 1000000007
const int maxn=2e5+;
int n,a[]={};
char s[];
int main(){
scanf("%d",&n);
scanf("%s",s);
a[]=;
int ff=;
for(it i=;i<n;i++){
for (int j=;j<i; j++) {
if (s[j]>s[i]) {
a[i]= ;
}
}
for (int k=i+;k<n; k++) {
if (s[i]>s[k] && a[i]==) {
ff = ;
break;
}
}
if(!ff){
break;
} }
if(ff){
printf("YES\n");
for(it i=;i<n;i++){
printf(i==n-?"%d\n":"%d",a[i]);
}
}
else{
printf("NO\n");
}
return ;
}
不知道为什么……现在打比赛开局总会爆炸
Codeforces Round #617 (Div. 3)的更多相关文章
- Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
(easy version): 题目链接:http://codeforces.com/contest/1296/problem/E1 题目一句话就是说,两种颜色不同的字符可以相互换位, 问,对这字符串 ...
- Codeforces Round #617 (Div. 3)F. Berland Beauty
题意: 给一棵树,边权未知,现在给m组约束,每组约束给出从u到v路径中的最小值,现在让你给出一组边权,使得符合之前的约束,不能给出输出-1 思路: 因为n较小,对于每组约束我们可以直接暴力修改路径上的 ...
- Codeforces Round #617 (Div. 3) D. Fight with Monsters
D : Fight with Monsters 题目大意 : 有一组数,每个值对应着一个怪物的 hp 值,现在有两个人,一个自己一个对手,每个人有一个攻击值, 两个人轮流攻击怪物,如果是自己将怪物先打 ...
- Codeforces Round #617 (Div. 3) 补题记录
1296A - Array with Odd Sum 题意:可以改变数组中的一个数的值成另外一个数组中的数,问能不能使数组的和是个奇数 思路:签到,如果本来数组的和就是个奇数,那就OK 如果不是,就需 ...
- Codeforces Round #617 (Div. 3) 题解
又是隔了一年才来补题的我 A.B水题就不用说了 C - Yet Another Walking Robot C题我居然卡了一会,最后决定用map水,结果出来看了看题解,居然真的是map...没想到会出 ...
- Codeforces Round #617 (Div. 3)A. Array with Odd Sum(水题)
You are given an array aa consisting of nn integers. In one move, you can choose two indices 1≤i,j≤n ...
- [CF百场计划]Codeforces Round #617 (Div. 3)
A. Array with Odd Sum Description You are given an array \(a\) consisting of \(n\) integers. In one ...
- 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 ...
随机推荐
- Hadoop中的java基本类型的序列化封装类
Hadoop将很多Writable类归入org.apache.hadoop.io包中,在这些类中,比较重要的有Java基本类.Text.Writable集合.ObjectWritable等,重点介绍J ...
- Spark对接Kafka、HBase
本项目是为网站日志流量分析做的基础:网站日志流量分析系统,Kafka.HBase集群的搭建可参考:使用Docker搭建Spark集群(用于实现网站流量实时分析模块),里面有关于该搭建过程 本次对接Ka ...
- Web 安全工具篇:Burp Suite 使用指南
真的是一点都不过分,了解详情请继续往下读. Burp Suite 介绍 Burp Suite 是用于攻击 web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程 ...
- 1.3 使用jmeter进行http接口测试
来源: http://www.cnblogs.com/alisapan/p/6150309.html 此篇纯是搬运记载.. 一.测试需求描述 1. 本次测试的接口为http服务端接口 2. 接口的 ...
- 箭头函数 this指向问题
1.为什么要用箭头函数 简洁 易用 固定this 指向(箭头函数在this定义时候生效) 2.箭头函数分析this指向 1.this指向调用函数的对象 情况1 var obj={ a:"1& ...
- Go函数高级
1. 函数的数据类型 package main import "fmt" func main() { /* go语言的数据类型: 基本数据类型: int,float,bool,st ...
- 将项目打成war包并用tomcat部署的方法,步骤及注意点
部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...
- 2016 Google code jam 大赛
二,RoundC import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundE ...
- Linux控制服务和守护进程
目录 控制服务和守护进程 1.systemd 1.1.systemd简介 1.2.systemd的新特性 1.3.systemd的核心概念Unit 2.使用systemctl管理服务 控制服务和守护进 ...
- java篇 之 变量存放位置
一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁 ...