Codeforces Round #543 (Div. 2)B,C
https://codeforces.com/contest/1121
B
题意
给你n(<=1000)个数a[i](<1e5),找出最多对和相等的数,每个数只能用一次,且每个数保证各不相同
题解
- 重点:每个数只会出现一次
- 枚举所有数对的和并标记,遍历和,次数最多即答案
- 为什么这样可以保证没有数使用了两次?
因为每个数只会出现一次,所以对于某个和来说,组成的每个数对都是唯一的
代码
#include<bits/stdc++.h>
using namespace std;
int n,i,a[1005],j,ans,vi[200005];
int main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i];
}
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
vi[a[i]+a[j]]++;
}
}
for(i=1;i<=200000;i++)
ans=max(ans,vi[i]);
cout<<ans;
}
C
题意(阅读题,难在题意和实现细节)
模拟判题系统,一共有n(<=1000)个提交,每个提交有a[i](<=150)个数据点,有k(<=100)个判题机器,判题顺序如下:n个提交依次判定,假如有空闲的机器就将下一个提交放上去,判定一个数据点需要1s,直到所有提交判定完毕。
定义d为判题率为round(100*m/n),m为已经判定完的提交数,对于每个提交来说,假如存在一个时刻,提交正在判定第x个数据点,而此时的d也是x,问有多少个这样的提交?
题解
- 数据量较少,所以直接模拟即可
- 每次模拟的是+0.5的情况,因此需要操作顺序为:将每个数据点+1,统计上一秒末的完成度->结算本秒->更新完成情况
坑点
- 对于有的提交,可能会多次满足条件,导致重复计算结果,所以需要标记每个提交
代码
#include<bits/stdc++.h>
using namespace std;
int n,k,m,a[1005],i,p[1005],j,vi[1005],d,ans,mk[1005];
double ti=0.5;
int main(){
cin>>n>>k;
for(i=1;i<=n;i++){
cin>>a[i];
}
k=min(n,k);
for(i=1;i<=k;i++)vi[i]=1;
for(;;ti+=1){
for(i=1;i<=n;i++){
if(vi[i]==1)p[i]++;
}
d=round(100.0*m/n);
/*for(i=1;i<=n;i++)cout<<p[i]<<" ";
cout<<d<<" ";*/
for(i=1;i<=n;i++){
if(vi[i]==1&&p[i]==d&&!mk[i]){ans++;mk[i]=1;}
}
//out<<ans<<" "<<ti<<endl;
for(i=1;i<=n;i++){
if(p[i]==a[i]&&vi[i]==1){
m++;vi[i]=2;
for(j=i+1;j<=n;j++){
if(!vi[j]){vi[j]=1;break;}
}
}
}
if(m==n)break;
}
cout<<ans;
}
Codeforces Round #543 (Div. 2)B,C的更多相关文章
- Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round)
A. Technogoblet of Fire 题意:n个人分别属于m个不同的学校 每个学校的最强者能够选中 黑客要使 k个他选中的可以稳被选 所以就为这k个人伪造学校 问最小需要伪造多少个 思路:记 ...
- Codeforces Round #543 (Div. 2) F dp + 二分 + 字符串哈希
https://codeforces.com/contest/1121/problem/F 题意 给你一个有n(<=5000)个字符的串,有两种压缩字符的方法: 1. 压缩单一字符,代价为a 2 ...
- Codeforces Round #543 (Div. 2) D 双指针 + 模拟
https://codeforces.com/contest/1121/problem/D 题意 给你一个m(<=5e5)个数的序列,选择删除某些数,使得剩下的数按每组k个数以此分成n组(n*k ...
- cf 20190307 Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round)
B. Mike and Children time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- Codeforces Round #543 (Div. 1, based on Technocup 2019 Final Round) 题解
题面戳这里 A. Diana and Liana 首先如果s>ks>ks>k一定无解,特判一下.那么我们考虑找恰好满足满足题目中的要求的区间[l,r][l,r][l,r],那么需要要 ...
- 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连试试水的深浅..... ...
随机推荐
- SQL2008用sql语句给字段添加说明
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'字段说明文字' , @level0type=N'SCHEMA',@l ...
- JDK1.5 Excutor 与ThreadFactory
Excutor 源码解读: /** * An object that executes submitted {@link Runnable} tasks. This * interface provi ...
- spring BeanUtils 工具实现对象之间的copy
一般我们会开发中会遇到返回用户信息的时候,不需要返回密码或者其他参数,这时候我们需要重新定义一个VO类去除不需要的参数,将原对象copy到VO类中 使用spring的BeanUtils可以实现对象的c ...
- oracle数据库冷恢复
场 景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了.硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动. 解决方案:通过冷恢复将数据库还原.在自己的电脑上搭建一个 ...
- 23.Mysql应用优化
23.应用优化23.1 使用连接池应用启动时创建好连接,以供用户使用,而不是每次创建. 23.2 减少对Mysql的访问 23.2.1 避免对同一数据做重复检索合并简单查询,减少访问次数. 23.2. ...
- session是什么
初识session,跟大家一起学习下 session是什么 首先,我们需要知道session是什么.我们普遍将session称之为会话控制.说实在的,我现在也不清楚session到底算是什么.我个人认 ...
- suricata 原文记录
如何在 Linux 系统上安装 Suricata 入侵检测系统 编译自:http://xmodulo.com/install-suricata-intrusion-detection-system-l ...
- oracle主键修改&设置某一字段可以为null
1.oracle主键修改 1.1)首先查看需要修改的表的主键名,默认的情况下,数据库会自动分配 select * from user_cons_columns where table_name='表名 ...
- 如何实现HashMap的同步
HashMap可以通过Map m = Collections.synchronizedMap(new HashMap())来达到同步的效果.具体而言,该方法会返回一个同步的Map,该Map封装了底层的 ...
- Spring Environment(一)API 介绍
Spring Environment(一)API 使用 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 3. ...