Codeforces Round #193 (Div. 2) 部分题解
A:直接判断前三项是否相等
int main()
{
//FIN;
//CHEAT;
int n;
cin>>n;
getchar();
char a[];
gets(a);
int len = strlen(a);
int cnt = ;
for(int i = ; i < len ; i++)
{
if(i % n == && i != )
{
if(a[i-] == a[i-] && a[i-] == a[i-])
cnt++;
}
}
cout<<cnt<<endl;
return ;
}
B:
求一遍前缀和O(n).... 用前缀和求一遍所有长度为k的区间和O(n)....
再从后往前找一遍这些区间的最大值O(n)...并记下从该点到最后的区间最大值...
然后就从前向后遍历一遍,每次找从i开始的区间和从点i+k之后的最大区间 ,求一次MAX即可 O(n)
总共还是O(n)...用线段树什么的就别逗了
LL a[];
LL sum[];
LL sum1[];
LL max2[];
LL maxe[];
int main()
{
//FIN;
//CHEAT;
int n,k;
cin>>n>>k;
for(int i = ; i <= n ; i++)
{
cin>>a[i];
sum[i] = sum[i-] + a[i];
}
int cnt = ;
for(int i = ; i <= n-k+ ; i++)
{
sum1[cnt++] = sum[i+k-] - sum[i-];
}
int back = cnt-;
LL M = -INF;
for(int i = cnt- ; i >= ; i--)
{
if(sum1[i] >= M)
{
max2[i] = sum1[i];
maxe[i] = i;
M = sum1[i];
}else
{
max2[i] = M;
maxe[i] = maxe[i+];
}
}
M = -INF;
int s1=,s2=;
for(int i = ; i <= n ; i++)
{
if(max2[i+k] + sum1[i] > M)
{
M = max2[i+k] + sum1[i];
s1 = i;
s2 = maxe[i+k];
}
}
cout<<s1<<" "<<s2<<endl;
return ;
}
C:
先贪心找 b最小a最大的 这是有可能取的任务
再贪心找 a最大b最大的 这是一定取的k个任务,并求出最小值
再贪心从剩下的点中 找出b小于最小值的点 ,再贪心找取p-k个b最大a最小的点...
排三遍序就行了...挺麻烦而且我感觉数据弱了...
struct point
{
int id ;
int s,v;
}x[MAXN],q[MAXN];
int cmp(point a,point b)
{
if(a.v != b.v)
return a.v < b.v;
else return a.s > b.s;
}
int cmp1(point a,point b)
{
if(a.s != b.s)
return a.s > b.s;
else return a.v > b.v;
}
int cmp2(point a,point b)
{
if(a.v != b.v)
return a.v > b.v;
else return a.s < b.s;
}
int main()
{
//FIN;
//CHEAT;
int n,p,k;
cin>>n>>p>>k;
for(int i = ; i < n ; i++)
{
cin>>x[i].s>>x[i].v;
x[i].id = i;
}
sort(x,x+n,cmp);
sort(x+(p-k),x+n,cmp1);
// for(int i = 0 ; i < n ; i++)
// cout<<x[i].s<<" "<<x[i].v<<" "<<x[i].id+1<<endl;
// cout<<endl;
int M = INF;
for(int i = p-k ;i < p ; i++)
M = min(M,x[i].v);
int cnt = ;
for(int i = ; i < p - k ; i++)
q[cnt++] = x[i];
for(int i = p- ; i < n ; i++)
if(x[i].v < M )
q[cnt++] = x[i];
sort(q,q+cnt,cmp2); for(int i = p-k ; i < p ; i++)
cout<<x[i].id+<<" ";
for(int i = ; i < p - k ; i++)
cout<<q[i].id+<<" ";
cout<<endl;
return ;
}
都是赛后做的...赛中做的话又要掉rating真是难过...今天多校也爆0...真是弱的不能多说...
Codeforces Round #193 (Div. 2) 部分题解的更多相关文章
- # Codeforces Round #529(Div.3)个人题解
Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...
- Codeforces Round #557 (Div. 1) 简要题解
Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...
- Codeforces Round #540 (Div. 3) 部分题解
Codeforces Round #540 (Div. 3) 题目链接:https://codeforces.com/contest/1118 题目太多啦,解释题意都花很多时间...还有事情要做,就选 ...
- Codeforces Round #538 (Div. 2) (A-E题解)
Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...
- Codeforces Round #531 (Div. 3) ABCDEF题解
Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...
- Codeforces Round #527 (Div. 3) ABCDEF题解
Codeforces Round #527 (Div. 3) 题解 题目总链接:https://codeforces.com/contest/1092 A. Uniform String 题意: 输入 ...
- Codeforces Round #499 (Div. 1)部分题解(B,C,D)
Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...
- Codeforces Round #545 (Div. 1) 简要题解
这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...
- Codeforces Round #624 (Div. 3)(题解)
Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...
随机推荐
- Linux Sendfile 的优势
Sendfile 函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝. Sendfile 函数的定义 ...
- 2015北京网络赛 J Scores bitset+分块
2015北京网络赛 J Scores 题意:50000组5维数据,50000个询问,问有多少组每一维都不大于询问的数据 思路:赛时没有思路,后来看解题报告也因为智商太低看了半天看不懂.bitset之前 ...
- Vue常见面试题汇总
Vue框架常见面试题 1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么 ...
- 【Django】ORM操作#2
目录 必知必会的13条查询方法 单表查询之神奇的双下划线 一对多 ForeignKey 多对多 ManyToManyField 在Python脚本中调用Django环境 Django终端打印SQL语句 ...
- linux安装lrzsz支持rz从windows上传文件到linux
1.下载lrzsz wget https://wangxuejin-data-1252194948.cos.ap-shanghai.myqcloud.com/lrzsz-0.12.20.tar.gz ...
- Python基本循环实例Day 1
输入正确的用户名和密码,显示登陆界面,超过三次输入错误则锁定,定义字符串记得加上单引号,数字可以int定义,while循环和if循环语句后加上:,break不加: print("------ ...
- eclipse 安装javaEE插件 和html\xml\jsp编辑器
1 在Eclipse中菜单help选项中选择install new software选项 2 在work with 栏中输入 http://download.eclipse.org/releases/ ...
- 自写的开发框架,胜于官方的clientAPP的实战开发。(已开源)
已开源,欢迎大家fork 小弟github地址为https://github.com/10045125/vanda 好久没写博客了,这段时间主要是要做的事情太多.如今接触android有段时间了.非常 ...
- 大型情感类电视连续剧--Android高德之旅(2)地图类型
总要说两句 今天继续我们的Android高德之旅,上一篇已经能够显示最主要的地图了.有主要的放大缩小功能.还有最后做的点击3D旋转.倾斜视角的效果.今天这篇文章来记录一下高德地图的5种地图类型. (其 ...
- smarty课程---最最最简单的smarty例子
smarty课程---最最最简单的smarty例子 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个 ...