Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round)
A. Technogoblet of Fire
题意:n个人分别属于m个不同的学校 每个学校的最强者能够选中 黑客要使 k个他选中的可以稳被选 所以就为这k个人伪造学校 问最小需要伪造多少个
思路:记录每个学校都有哪些人 每次看黑客选中的人是不是在学校是最强者(这里要处理能力一样的情况,如果有能力一样的为了保证稳进也要伪造一个学校) 然后就是模拟了
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
const int maxn=+;
vector<pii>v[maxn];
int p[maxn],s[maxn]; int main(){
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
FOR(i,,n)scanf("%d",&p[i]);
FOR(i,,n){
scanf("%d",&s[i]);
v[s[i]].pb(mkp(p[i],i));
}
int cnt=;
int id;
FOR(i,,k-){
scanf("%d",&id);
for(int j=;j<v[s[id]].size();j++){
if(v[s[id]][j].F>=p[id]&&v[s[id]][j].S!=id){
cnt++;
break;
}
}
for(int j=;j<v[s[id]].size();j++){
if(v[s[id]][j]==mkp(p[id],s[id])){
v[s[id]].erase(v[s[id]].begin()+j);
break;
}
}
}
cout<<cnt<<endl;
return ;
}
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
const int maxn=+;
vector<pii>v[maxn];
int a[maxn],s[maxn];
set<int>q;
map<int,int>mp;
int main(){
int n;
scanf("%d",&n);
FOR(i,,n-){scanf("%d",&a[i]);}
int cnt=;
int id=;
FOR(i,,n-){
FOR(j,i+,n-){
q.insert(a[i]+a[j]);
mp[a[i]+a[j]]++;
if(cnt<mp[a[i]+a[j]]){
cnt=mp[a[i]+a[j]];
id=a[i]+a[j];
}
}
} cout<<cnt<<endl;
}
C. System Testing
题意:一秒测试一个样例 一共有m台机器和n个题目 给出每个题目的样例数 问存在多少个round(100*ok/n) ==当前测试到的样例数 ok是已经完成的题数
思路:这里刚开始写的时候是用优先队列模拟的,会出现一个bug 因为是并行计算的,所以当前最先完成测试的题目 测试到的样例 满足round(100*ok/n)==样例数 可能会出现在上上个题目之前(包含上上个) 这样就会统计不到
所以还是离散化秒数 用秒模拟即可(这题的数据范围是允许的) 参考了超哥的代码
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
const int maxn=+;
int vis[maxn],mk[maxn],p[maxn],a[maxn];
int ans=;
double ti=0.5;
int main(){
int n,k,m;
scanf("%d%d",&n,&k);
m=;
int tmp;
FOR(i,,n){
scanf("%d",&a[i]);
}
k=min(n,k);
FOR(i,,k)vis[i]=;
for(;;ti+=){
for(int i=;i<=n;i++){
if(vis[i]==)p[i]++;
} int d=round(100.0*m/n); for(int i=;i<=n;i++){
if(vis[i]==&&p[i]==d&&!mk[i]){ans++;mk[i]=;}
} for(int i=;i<=n;i++){
if(p[i]==a[i]&&vis[i]==){
m++;
vis[i]=-;
for(int j=i+;j<=n;j++){
if(!vis[j]){vis[j]=;break;}
}
}
}
if(m==n)break;
}
cout<<ans<<endl;
return ;
}
F. Compress String
把一个字符串包装成很多个连续的部分 单个字符串需要消耗a 如果 tl tl+1 ...tr是前面t1...tl-1的子序列只需要消耗b问最小代价
思路:维护一个最长公共子串详细见代码
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
const int maxn=+;
int dp[maxn];
int lcs[maxn][maxn];
char s[maxn];
int main(){
int n,a,b;
scanf("%d%d%d",&n,&a,&b);
scanf("%s",s+);
FOR(i,,n){
dp[i]=dp[i-]+a;//初始化删一个
FOR(j,,i-){
if(s[i]==s[j])lcs[i][j]=lcs[i-][j-]+;// 维护前i个和前j的最长公共子串并且终点是在i的
if(lcs[i][j]!=&&i-j>=lcs[i][j])dp[i]=min(dp[i],dp[i-lcs[i][j]]+b);//如果1-i,1-j存在公共子串其中一个终点在i并且大区间(也就是终点的i)的起点在小区间的前面 即可更新dp[i][j] 可画图理解其正确性
}
}
cout<<dp[n]<<endl;
return ;
}
Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round)的更多相关文章
- 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 #517 (Div. 2, based on Technocup 2019 Elimination Round 2)
Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) #include <bits/stdc++ ...
- (AB)Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round
A. Right-Left Cipher time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) D. Minimum path
http://codeforces.com/contest/1072/problem/D bfs 走1步的最佳状态 -> 走2步的最佳状态 -> …… #include <bits/ ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) D. Minimum path(字典序)
https://codeforces.com/contest/1072/problem/D 题意 给你一个n*n充满小写字母的矩阵,你可以更改任意k个格子的字符,然后输出字典序最小的从[1,1]到[n ...
- Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C. Connect Three 【模拟】
传送门:http://codeforces.com/contest/1087/problem/C C. Connect Three time limit per test 1 second memor ...
- Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) C. Vasya and Golden Ticket 【。。。】
任意门:http://codeforces.com/contest/1058/problem/C C. Vasya and Golden Ticket time limit per test 1 se ...
- Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)B. World Cup
The last stage of Football World Cup is played using the play-off system. There are n teams left in ...
随机推荐
- Centos7 ssh配置RSA证书登录
修改sshd配置文件 vim /etc/ssh/sshd_config #增加以下三项 RSAAuthentication yes PubkeyAuthentication yes Authorize ...
- 阿里字体css代码引入方法
1.第一步,选择自己想要的图标字体,添加入库. 2.选择下载代码. 3.我们可以发现,有如下的代码被下载下来了. 4.我们选择iconfont.css放到自己的文件夹中. 5.然后我们根据下载下来ht ...
- Spring AOP详细介绍
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- 【学习总结】GirlsInAI ML-diary day-16-pip install XX
[学习总结]GirlsInAI ML-diary 总 原博github链接-day16 Pip pip是python 著名的包管理工具,在python开发过程必不可少. 本节带大家了解用pip实现的p ...
- EF内容记录_EF连接Mysql版本问题
EF连接MySQL可用版本,由于EF.MySQLConnection.mysql-for-visualstudio.VS版本.MySQL.Data.MySQL.Data.Entity版本问题较花时间, ...
- CSS小东西
1.表格列自动均分 table-layout:fixed; 2.单元格内容自动换行 word-wrap:break-word;
- Azure系列2.1.3 —— BlobEncryptionPolicy
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- JavaMail入门第一篇 邮件简介及API概述
现如今,电子邮件在我们的生活当中扮演着越来越重要的角色,我们每个人几乎都会与其打交道(至少时不时我们都会接收到莫名其妙的垃圾邮件),在工作中,使用邮件进行交流沟通,可以使我们的工作有迹可循,也显的较为 ...
- jenkins配置SSH远程服务器连接
之前用jenkins做了一个自动发布测试,配置任务的Post Steps时,选择的是执行shell命令.如下图: 这是在本192.168.26.233服务器上测试的,此服务器上运行jenkins,to ...
- SQL年月日格式化
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16