Codeforces Round #574 (Div. 2)补题
A. Drinks Choosing
统计每种酒有多少人偏爱他们。 ki 为每种酒的偏爱人数。
输出ans = (n + 1)/2 > Σki / 2 ? (n + 1)/2 - Σki / 2 + (Σki / 2) * 2 : (n + 1)/2 * 2
#include<iostream>
#include<algorithm>
using namespace std; int n,k;
const int L = +;
int a[L];
int main()
{
cin>>n>>k;
int t;
for(int i = ;i<n;++i)
{
cin>>t;
a[t]++;
}
n = n%? (n + )/: n/;
int cnt = ;
for(int i = ;i<=k;++i)
cnt+= a[i]/;
if(cnt<n)
cout<< n - cnt + *cnt<<endl;
else cout<<n*<<endl; return ;
}
B. Sport Mafia
二分查找二元一次方程的解
设 放入操作数为a,取出操作数为b,有
a*(a + 1)/2 - b = k
a + b = n
联立得a*(a + 3) = 2*(n + k) 二分查找a,再解出b即可
#include<iostream>
using namespace std; long long n,k; int main()
{
cin>>n>>k;
long long lo = ;
long long hi = 5e9;
long long mi = (lo + hi)>>;
while(lo <hi)
{
mi = (lo + hi)>>;
if(mi * (mi + ) < *(n+k))
lo = mi+;
else hi = mi;
} cout<<n - lo<<endl;
return ;
return ;
}
C. Basketball Exercise
dp题
#include<iostream>
#include<cstring>
using namespace std;
const int L = 1e5+;
int n;
long long a[L],b[L];
long long ans;
long long dp[L][];
long long max(long long a,long long b)
{
return a>b?a:b;
}
int main()
{
cin>>n;
for(int i = ;i<=n;++i)cin>>a[i];
for(int i = ;i<=n;++i)cin>>b[i];
dp[n][] = a[n];dp[n][] = b[n];
dp[n-][] = dp[n][] + a[n-];
dp[n-][] = dp[n][] + b[n-];
for(int i = n-;i>=;--i)
{
dp[i][] += a[i];
dp[i][] += b[i];
dp[i][] += max(dp[i+][],dp[i+][]);
dp[i][] += max(dp[i+][],dp[i+][]);
}
cout<<max(dp[][],dp[][]); return ;
}
D1/D2. Submarine in the Rybinsk Sea
统计各串数的各个位对最终解的贡献即可。
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int L = 1e5+;
const long long MOD = ;
struct E{
char s[];
int l;
}str[L];
long long a[];
int n;
int NUM[];
int sum[];
long long ans;
int main()
{
cin>>n;
for(int i = ;i<n;++i)
{
cin>>str[i].s;
str[i].l = strlen(str[i].s);
} int LEN = ;
for(int i = ;i<n;++i)
{
NUM[str[i].l]++;
LEN = max(LEN,str[i].l);
}
LEN *=;
for(int i = ;i<;++i) sum[i] = NUM[i] + sum[i-];
for(int i = ;i<n;++i)
{
reverse(str[i].s,str[i].s+str[i].l);
for(int j = ;j<str[i].l;++j)
{
a[j*] += (str[i].s[j] - '')*(sum[] - sum[j]);
a[j*]%=MOD;
a[j* + ] += (str[i].s[j] - '')*(sum[] - sum[j]);
a[j*+]%=MOD;
}
for(int j = ;j<;++j)
{
if(NUM[j] == ) continue;
int l = str[i].l - j;
if(l<=) break;
for(int k=;k<=l;++k)
{
a[j*+k-] += (str[i].s[j + k - ]-'')** (NUM[j]);
a[j*+k-]%=MOD;
}
}
}
long long L = ;
for(int i = ;i<LEN;++i)
{
ans += (L%=MOD)*(a[i]%MOD);
ans%=MOD;
L*=;
}
cout<<ans<<endl; return ;
}
Codeforces Round #574 (Div. 2)补题的更多相关文章
- Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring
D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Codeforces Round #585 (Div. 2) [补题]
前言 2019.9.16 昨天下午就看了看D题,没有写对,因为要补作业,快点下机了,这周争取把题补完. 2019.9.17 这篇文章或者其他文章难免有错别字不被察觉,请读者还是要根据意思来读,不要纠结 ...
- Codeforces Round #786 (Div. 3) 补题记录
小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...
- Codeforces Round #429 (Div. 2) 补题
A. Generous Kefa 题意:n个气球分给k个人,问每个人能否拿到的气球都不一样 解法:显然当某种气球的个数大于K的话,就GG了. #include <bits/stdc++.h> ...
- Codeforces Round #419 (Div. 1) 补题 CF 815 A-E
A-C传送门 D Karen and Cards 技巧性很强的一道二分优化题 题意很简单 给定n个三元组,和三个维度的上限,问存在多少三元组,使得对于给定的n个三元组中的每一个,必有两个维度严格小于. ...
- Codeforces Round #590 (Div. 3)补题
要想上2000分,先刷几百道2000+的题再说 ---某神 题目 E F 赛时是否尝试 × × tag math bitmask 难度 2000 2400 状态 ∅ √ 解 E 待定 F 传送门 第一 ...
- Codeforces Round #615 (Div. 3) 补题记录
第一次搞CF,结果惨不忍睹...还是太菜了 A:要用到全部的钱,所以总数必须是3的倍数,而且初始状态下任意一人的钱数不能超过总数除以3,否则没法分了 (也就这个签到算是在我能力范围之内了....) # ...
- Codeforces Round #617 (Div. 3) 补题记录
1296A - Array with Odd Sum 题意:可以改变数组中的一个数的值成另外一个数组中的数,问能不能使数组的和是个奇数 思路:签到,如果本来数组的和就是个奇数,那就OK 如果不是,就需 ...
- Codeforces Round #378 (Div. 2) D题(data structure)解题报告
题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...
随机推荐
- tensorboard 远程服务器本地浏览器无法显示
在用xshell等ssh工具远程连接服务器时,我们常常在服务器上运行tensorflow代码,而且模型tf.summary保存文件在服务器上,这是直接采用tensorboard会有一些小问题.直接用t ...
- 用python实现的简易记牌器的demo
实现功能很简单: 初始时 1到10 以及 jkq各 4张,大小王 共两张 只要输入相应的牌号:1到10,例如 >>1 J.K.Q :例如>>j >> ...
- 在eclipse中查找一个类中的方法在其他哪个类中被调用了
选中你所要查看的方法名,ctrl+shift+G就可以查看所有调用过该方法的地方了.在Search视图里面可以查看得到这个样子是可以的,你也可以按Ctrl+H全文检索一下
- Navicat连接的某个表一直加载并且不能关闭
问题: 今天下午突然发现数据库的一张表一直加载,也出不来数据,并且也不能关闭.解决办法: 在Navicat中中执行如下命令: SHOW PROCESSLIST; 如果state列中有lock字眼,通过 ...
- Go语言编程中字符串切割方法小结
1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是[]string的切片 复制代码代码如下: import ( "fm ...
- Linux dirname 和 basename
[参考文章]:Linux shell - `dirname $0` 定位到运行脚本的相对位置 [参考文章]:Linux命令之basename使用 1. dirname $0 获取脚本文件所在的目录信息 ...
- 图及其衍生算法(Graphs and graph algorithms)
1. 图的相关概念 树是一种特殊的图,相比树,图更能用来表示现实世界中的的实体,如路线图,网络节点图,课程体系图等,一旦能用图来描述实体,能模拟和解决一些非常复杂的任务.图的相关概念和词汇如下: 顶点 ...
- linux centos6.5 环境下安装redis的过程
过程还是挺折磨人的!谢谢许正同学一直耐心给我指导,虽然他也很忙.废话不多说: 首先,确保linux虚拟机联网: vm虚拟机>设置>Network Adapter 设置>网络配置设置成 ...
- vector subscript out of range
报这个错时会弹出一个窗口,貌似内存溢出,这是什么由于vector存放的数据超出了vector的大小所造成的. 解决方法如下: 在Vector<string> vector之后,不能直接通过 ...
- RabbitMQ学习之:(九)Headers Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/05/29/rabbitmq-for-windows-headers-exchanges/ RabbitMQ f ...