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补掉就到了= = 然后到宾馆之后 ...
随机推荐
- 【多线程】Thread静态代理模式理解
Thread静态代理模式理解 代码示例: /** * @Description 静态代理模式 * @Author hzx * @Date 2022-03-26 */ public class Stat ...
- 理解RESTful Api设计
REST REST(REpresentational State Transfer)是 Roy Fielding 博士于 2000 年在他的博士论文中提出来的一种软件架构风格(一组架构约束条件和原则) ...
- DOM树
一.DOM树一共有12种节点类型,常用的有4种: 1.Document类型(document节点)--DOM的"入口点" 2.Element节点(元素节点)--HTML标签,树构建 ...
- Redis中的原子操作(2)-redis中使用Lua脚本保证命令原子性
Redis 如何应对并发访问 使用 Lua 脚本 Redis 中如何使用 Lua 脚本 EVAL EVALSHA SCRIPT 命令 SCRIPT LOAD SCRIPT EXISTS SCRIPT ...
- MathType7安装使用及please restart word to load mathtype addin properly的问题
MathType7安装使用及please restart word to load mathtype addin properly的问题.最近在自己的电脑上安装Mathtype7,把遇到的问题和解决办 ...
- 入坑KeePass(三)安全设置完后后留存
1.文件> 数据库设置 > 安全 迭代次数改成500000 2.工具 > 选项 2.1.安全 2.2.策略 2.3.集成 2.4高级
- 使用 .NET MAUI 创建移动应用——Get Start
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 1.IDE下载安装 如果你还没安装Visual Studio 2022 预览版 你 ...
- 华为AppLinking中统一链接的创建和使用
运营的同学近期在准备海外做一波线下投放,涉及到海外的Google Play,iOS设备的App Store,以及华为渠道的AppGallery. 其中运营希望我们能够将三个平台的下载整合到一个链接 ...
- spring中的bean生命周期
1.实例化(在堆空间中申请空间,对象的属性值一般是默认值.通过调用createBeanInstance()方法进行反射.先获取反射对对象class,然后获取默认无参构造器,创建对象) 2.初始化(就是 ...
- React技巧之检查元素是否可见
原文链接:https://bobbyhadz.com/blog/react-check-if-element-in-viewport 作者:Borislav Hadzhiev 正文从这开始~ 总览 在 ...