Codeforces_835
A.比较两人总时间。
#include<bits/stdc++.h>
using namespace std; int s,v1,v2,t1,t2; int main()
{
ios::sync_with_stdio(false);
cin >> s >> v1 >> v2 >> t1 >> t2;
int x1 = s*v1+*t1,x2 = s*v2+*t2;
if(x1 < x2) cout << "First" << endl;
else if(x1 > x2) cout << "Second" << endl;
else cout << "Friendship" << endl;
return ;
}
B.记录每个数值个9的差的个数,贪心大的。
#include<bits/stdc++.h>
using namespace std; int k,cnt[];
string s; int main()
{
ios::sync_with_stdio(false);
cin >> k >> s;
int sum = ;
for(int i = ;i < s.length();i++)
{
sum += s[i]-'';
cnt[-s[i]+'']++;
}
int ans = ,now = ;
while(sum < k)
{
while(cnt[now] == ) now--;
cnt[now]--;
sum += now;
ans++;
}
cout << ans << endl;
return ;
}
C.给周期内每个时间点都开数组,二维前缀和。
#include<bits/stdc++.h>
using namespace std; int n,q,c,ans[][][] = {}; int main()
{
ios::sync_with_stdio(false);
cin >> n >> q >> c;
for(int i = ;i <= n;i++)
{
int x,y,z;
cin >> x >> y >> z;
for(int j = ;j <= c;j++) ans[x][y][j] += (j+z)%(c+);
}
for(int k = ;k <= c;k++)
{
for(int i = ;i <= ;i++)
{
for(int j = ;j <= ;j++) ans[i][j][k] += ans[i][j-][k]+ans[i-][j][k]-ans[i-][j-][k];
}
}
while(q--)
{
int t,x1,x2,y1,y2;
cin >> t >> x1 >> y1 >> x2 >> y2;
t %= (c+);
cout << ans[x2][y2][t]-ans[x1-][y2][t]-ans[x2][y1-][t]+ans[x1-][y1-][t] << endl;
}
return ;
}
D.区间dp。
#include<bits/stdc++.h>
using namespace std; string s;
int dp[][] = {},ans[] = {}; int main()
{
ios::sync_with_stdio();
cin >> s;
s = ' '+s;
for(int i = ;i < s.length();i++) dp[i][i] = ;
for(int i = ;i < s.length();i++)
{
if(s[i-] == s[i]) dp[i-][i] = ;
}
for(int len = ;len < s.length();len++)
{
for(int l = ;l+len- < s.length();l++)
{
int r = l+len-;
if(s[l] != s[r] || !dp[l+][r-]) continue;
dp[l][r] = dp[l][l+len/-]+;
}
}
for(int i = ;i < s.length();i++)
{
for(int j = i;j < s.length();j++) ans[dp[i][j]]++;
}
for(int i = s.length()-;i >= ;i--) ans[i] += ans[i+];
for(int i = ;i < s.length();i++) cout << ans[i] << " ";
cout << endl;
return ;
}
E.因为有两个y,先把两个y划分进不同的组,把n个位置按位运算。每一位对应的值异或,统计只含一个y的位,10次。任取其中一位,对n个数划分成2块,之后对某一块少的二分找y的位置,9次。因为已经所有只含一个y的位,异或可得另一个y的位置。
#include<bits/stdc++.h>
using namespace std; int n,x,y; int ask(vector<int> v)
{
if(v.empty()) return ;
cout << "? " << v.size();
for(int i = ;i < v.size();i++) cout << " " << v[i];
cout << endl;
int x;
cin >> x;
return x;
} int main()
{
ios::sync_with_stdio();
cin >> n >> x >> y;
int diff = ,diffb;
for(int i = ;i < ;i++)
{
vector<int> v;
for(int j = ;j <= n;j++)
{
if(j&(<<i)) v.push_back(j);
}
int t = ask(v);
if(t == y || t == (x^y))
{
diff |= (<<i);
diffb = i;
}
}
vector<int> a,b;
for(int i = ;i <= n;i++)
{
if(i&(<<diffb)) a.push_back(i);
else b.push_back(i);
}
if(a.size() > b.size()) swap(a,b);
int l = ,r = a.size()-;
while(l < r)
{
int mid = (l+r)/;
vector<int> v;
for(int i = l;i <= mid;i++) v.push_back(a[i]);
int t = ask(v);
if(t == y ||t == (x^y)) r = mid;
else l = mid+;
}
int ans1 = a[l],ans2 = ans1^diff;
if(ans1 > ans2) swap(ans1,ans2);
cout << "! " << ans1 << " " << ans2 << endl;
return ;
}
Codeforces_835的更多相关文章
随机推荐
- ElementUi 两个表格反选
ElementUi 两个表格反选 1.先看看实现的图 表格内容显示 <el-row :gutter="20"> <el-col :span="16&qu ...
- JUC 中的 Atomic 原子类总结
1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的.在我们这里 Atomic 是指一个操作是不可中断的.即使是 ...
- 使用PE启动盘清空电脑登入密码
1.PE启动盘制作过程 要制作一个启动盘可以使用很多工具来制作,比如老毛桃.U深度.大白菜等软件都可以制作PE启动盘.此处就用老毛桃制作PE启动盘为例(http://www.laomaotao.tv/ ...
- AcWing 244. 谜一样的牛|树状数组
传送门 题目描述 有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高. 现在这n头奶牛站成一列,已知第i头牛前面有Ai头牛比它低,求每头奶牛的身高. 输入格式 第1行:输入整 ...
- codevs 3981 动态最大子段和(线段树)
题目传送门:codevs 3981 动态最大子段和 题目描述 Description 题目还是简单一点好... 有n个数,a[1]到a[n]. 接下来q次查询,每次动态指定两个数l,r,求a[l]到a ...
- sg函数的学习
1 .anti-nim 2 . 可以拆分的
- SpringCloud之Eureka(注册中心集群篇)(三)
一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master.另外一个叫eureka_register_service_backup eurek ...
- 理解Stream(一)——串行与终止操作
Java 8 stream特性是一个能快速降低开发人员工作量的语法糖,用起来很简单,用好了很难.这里就通过一系列的博客对几个常见的错误进行解释说明,并给出替代方法.这里先说明串行和终止操作. 首先,给 ...
- 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)
博主学习的源头,感谢!https://www.jianshu.com/p/95a8f035c86c 归一化 (Normalization).标准化 (Standardization)和中心化/零均值化 ...
- IDEA使用 磨刀霍霍向代码
工欲善其事,必先利其器 ,当下有数不清的 Java 程序员将石器时代的 Eclipse 替换成了现代化的智能开发工具 InteliJ IDEA ,写代码的小日子过得不亦乐乎(玩笑话,两者各有千秋,看个 ...