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)的更多相关文章

  1. CF Educational Round 78 (Div2)题解报告A~E

    CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students​ 依题意模拟即可 #include<bits/stdc++.h> us ...

  2. 【题解】Comet OJ Round 70 简要题解

    [题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...

  3. [Codeforces Round #431]简要题解

    来自FallDream的博客,未经允许, 请勿转载,谢谢. 好久没写cf题解了zzz 代码比较丑不贴了,cf上都可以看 Div2A. 给你一个长度为n(n<=100)的序列 判断是否可以分成奇数 ...

  4. Codeforces Round#433 简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了  突然想上点分  就打了一场Div1  没想到打到了rank5  一发上橙了,可还行. ...

  5. Codeforces Round#432 简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. Div2A 小判断题 Div2B 小判断题,合法的条件是|AB|=|BC|且三点不共线 Div1A 类比二维.三维空间,可以猜测n太大的时候没 ...

  6. Codeforces Round #557 (Div. 1) 简要题解

    Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...

  7. CF Round #580(div2)题解报告

    CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...

  8. Codeforces Round #258 (Div. 2)[ABCD]

    Codeforces Round #258 (Div. 2)[ABCD] ACM 题目地址:Codeforces Round #258 (Div. 2) A - Game With Sticks 题意 ...

  9. Noip 2014酱油记+简要题解

    好吧,day2T1把d默认为1也是醉了,现在只能期待数据弱然后怒卡一等线吧QAQ Day0 第一次下午出发啊真是不错,才2小时左右就到了233,在车上把sao和fate补掉就到了= = 然后到宾馆之后 ...

随机推荐

  1. 操作系统实现-loader

    博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个 ...

  2. 590. N-ary Tree Postorder Traversal - LeetCode

    Question 590. N-ary Tree Postorder Traversal Solution 题目大意:后序遍历一个树 思路: 1)递归 2)迭代 Java实现(递归): public ...

  3. Nexus5x 刷机

    1.刷机方式 线刷 线刷的本质的是对分区的全部内容的替换,线刷的包通常比较大. 卡刷 顾名思义,将升级包放在存储卡上,然后进入Recovery引导模式对系统进行刷机.卡刷本质是对文件的替换过程.它不会 ...

  4. nginx 源码安装配置详解(./configure)

    在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...

  5. MongoDB 各项命名规范

    每日一句 Progress is the result of a bunch of failures. 进步是不断失败的成果. 概述 MongoDB涉及到的一些比如集合啥的命令规范. 集合的命名规范 ...

  6. Spring大事务到底如何优化?

    所谓的大事务就是耗时比较长的事务. Spring有两种方式实现事务,分别是编程式和声明式两种. 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交. 一.大事务产生的原因 操作的数据 ...

  7. 论文解读(GCC)《GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training》

    论文信息 论文标题:GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training论文作者:Jiezhong Qiu, Qibi ...

  8. Linux(Centos7)静默安装Oracle19C

    Oracle数据库服务器一般都是Linux,Linux服务器一般都是在非图形界面的操作,本文章手把手教你如何在非图形界面安装Oracle19C. ORACLE 19C 的安装包自行在官网下载,下载免费 ...

  9. SAP 实例 5 CFW Events

    REPORT demo_custom_control . * Declarations ***************************************************** CL ...

  10. NC200211 装备合成

    NC200211 装备合成 题目 题目描述 牛牛有 \({x}\) 件材料 \({a}\) 和 \({y}\) 件材料 \({b}\) ,用 \({2}\) 件材料 \({a}\) 和 \({3}\) ...