CF Edu Round 131 简要题解 (ABCD)
A
分类讨论即可 .
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
int main()
{
int T, a11, a12, a21, a22; scanf("%d", &T);
while (T--)
{
scanf("%d%d%d%d", &a11, &a12, &a21, &a22);
if (!a11 && !a12 && !a21 && !a22) puts("0");
else if (a11 && a12 && a21 && a22) puts("2");
else puts("1");
} return 0;
}
t 宝那个判 \(a\) 里所有数之和的是真妙 .
B
显然 \(d=2\) 最优,然后模拟即可 .
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int N = 5e5 + 233;
vector<int> g[N];
inline void addedge(int u, int v){g[u].emplace_back(v);}
int n;
bool vis[N];
int main()
{
int T; scanf("%d", &T);
while (T--)
{
scanf("%d", &n);
puts("2");
for (int i=1; i<=n; i++)
{
if (vis[i]) continue;
vis[i] = true;
for (int j=i; j<=n; j*=2) vis[j] = true, printf("%d ", j);
}
puts("");
for (int i=1; i<=n; i++) vis[i] = false;
} return 0;
}
C
二分答案,于是考虑把时间都用满可以做多少工作 check 即可 .
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int N = 5e5 + 233;
int n, m, a[N];
inline bool check(int x)
{
ll ans = 0;
for (int i=1; i<=n; i++) ans += min(x, a[i]) + (x - min(x, a[i])) / 2;
return ans >= m;
}
inline void solve()
{
scanf("%d%d", &n, &m);
for (int i=1, x; i<=m; i++) scanf("%d", &x), ++a[x];
int l = 0, r = 2 * m, ans;
while (l <= r)
{
int mid = (l + r) >> 1;
if (check(mid)){ans = mid; r = mid - 1;}
else l = mid + 1;
}
for (int i=1; i<=n; i++) a[i] = 0;
printf("%d\n", ans);
}
int main()
{
int T; scanf("%d", &T);
while (T--) solve();
return 0;
}
D
找到每个 \(a_i\) 能取的区间 \([l,r]\),于是问题就变成每个区间取一个数使得两两不重复 .
二分图匹配会 TLE on #4
可以贪心,枚举左端点,右端点扔到 priority_queue 里面取最小的选即可 .
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int N = 5e5 + 233;
vector<pii> g[N];
int n;
int main()
{
int T; scanf("%d", &T);
while (T--)
{
scanf("%d", &n);
for (int i=1, x; i<=n; i++)
{
scanf("%d", &x);
int L, R;
if (x == 0){L = i + 1; R = n;}
else {L = i / (x + 1) + 1; R = i / x;}
g[L].emplace_back(make_pair(R, i));
}
priority_queue<pii, vector<pii>, greater<pii> > q;
vector<int> ans(n+5);
for (int i=1; i<=n; i++)
{
for (auto _ : g[i]) q.emplace(_);
auto _ = q.top(); q.pop();
ans[_.second] = i;
}
for (int i=1; i<=n; i++) printf("%d ", ans[i]);
puts("");
for (int i=1; i<=n; i++) g[i].clear();
} return 0;
}
CF Edu Round 131 简要题解 (ABCD)的更多相关文章
- CF Educational Round 78 (Div2)题解报告A~E
CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students 依题意模拟即可 #include<bits/stdc++.h> us ...
- 【题解】Comet OJ Round 70 简要题解
[题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...
- [Codeforces Round #431]简要题解
来自FallDream的博客,未经允许, 请勿转载,谢谢. 好久没写cf题解了zzz 代码比较丑不贴了,cf上都可以看 Div2A. 给你一个长度为n(n<=100)的序列 判断是否可以分成奇数 ...
- Codeforces Round#433 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了 突然想上点分 就打了一场Div1 没想到打到了rank5 一发上橙了,可还行. ...
- Codeforces Round#432 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. Div2A 小判断题 Div2B 小判断题,合法的条件是|AB|=|BC|且三点不共线 Div1A 类比二维.三维空间,可以猜测n太大的时候没 ...
- Codeforces Round #557 (Div. 1) 简要题解
Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...
- CF Round #580(div2)题解报告
CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...
- Codeforces Round #258 (Div. 2)[ABCD]
Codeforces Round #258 (Div. 2)[ABCD] ACM 题目地址:Codeforces Round #258 (Div. 2) A - Game With Sticks 题意 ...
- Noip 2014酱油记+简要题解
好吧,day2T1把d默认为1也是醉了,现在只能期待数据弱然后怒卡一等线吧QAQ Day0 第一次下午出发啊真是不错,才2小时左右就到了233,在车上把sao和fate补掉就到了= = 然后到宾馆之后 ...
随机推荐
- Swift初探02 数组、集合、元组、字典
数组.集合.元组.字典 每一门语言基本都会有这些数据结构,swift也不例外,而作为一门现代的语言,swift提供了很多的现成的方法给我们选择. 一.数组 01 数组的定义 // 三种声明方式 var ...
- 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...
- zabbix 线路质量监控自定义python模块,集成ICMP/TCP/UDP探测,批量监控线路质量自定义阈值联动mtr保存线路故障日志并发送至noc邮箱
互联网故障一般表现为丢包和时延增大,持续性故障不难排查,难的是间歇性或凌晨故障,后者往往来不及等我们测试就已经恢复正常,得不到异常时的mtr无法判断故障点在哪里 故此有了根据丢包率和时延变换联动mtr ...
- 877. Stone Game - LeetCode
Question 877. Stone Game Solution 题目大意: 说有偶数个数字,alex和lee两个人比赛,每次轮流从第一个数字或最后一个数字中拿走一个(偶数个数字,所以他俩拿的数字个 ...
- IPC机制与线程的操作
目录 Queue模块 IPC机制(进程间通信) 生产者消费者模型 线程理论 创建线程的两种方式 线程实现TCP服务端的并发 线程join方法 线程数据共享 线程对象属性和方法 守护线程 GIL全局解释 ...
- Hadoop: 单词计数(Word Count)的MapReduce实现
1.Map与Reduce过程 1.1 Map过程 首先,Hadoop会把输入数据划分成等长的输入分片(input split) 或分片发送到MapReduce.Hadoop为每个分片创建一个map任务 ...
- SMFL 教程&个人笔记
本文大部分来自官方教程的Google翻译 但是加了一点点个人的理解和其他相关知识 转载请注明 原文链接 :https://www.cnblogs.com/Multya/p/16273753.html ...
- 通过一次生产case深入理解tomcat线程池
最近生产上遇到一个case,终于想明白了原因,今天周末来整理一下 生产case 最近测试istio mesh的预热功能(调用端最小连接数原则) 来控制调用端进入k8s刚扩出来的容器的流量 因为刚启动的 ...
- TornadoFx实现侧边栏菜单效果
原文地址:TornadoFx实现侧边栏菜单效果 - Stars-One的杂货小窝 之前年前研究的东西,给蓝奏批量下载器重构了页面,实现了侧边栏菜单的效果,稍微总结下把 效果 实现 首先,要说明的是,总 ...
- nginx 代理请求导出功能bug解决方法
问题描述: nginx代理的ip直接访问可以直接下载文件,但是通过nginx访问就报502,nginx错误日志:upstream sent invalid chunked response while ...