这场比赛好鬼畜啊,,A题写崩了wa了4遍,心态直接爆炸,本来想弃疗了,结果发现BCD都是傻逼题。。

A. If at first you don't succeed...(容斥原理)

题目大意:

有$N$个人参加了考试,考试完成后在通过的人中,有$A$个人去了第一个酒店聚会,有$B$个人去了第二个酒店聚会,有$C$个人同时去了两个酒店聚会。

问有多少个人没有通过考试(主角没有通过考试)

Sol

小学生容斥,参加了聚会的肯定有$A+B-C$个人,用$N$减去这个数就是不合格的喽

一开始wa了4发心态爆炸然后加了一坨特判A了。。

#include<cstdio>
using namespace std;
int main() {
int A, B, C, N;
scanf("%d %d %d %d", &A, &B, &C, &N);
int no = N - (A + B - C);
if(A >= N || B >= N || C >= N || (C > A) || (C > B)) {printf("-1"); return ;}
if(no <= || no > N) {printf("-1"); return ;}
printf("%d", N - (A + B - C));
return ;
}

B. Getting an A(贪心)

题目大意:

Vasya做了$n$门实验,得分为$2-5$之间的数,他想让自己的平均成绩(总得分除以实验次数)四舍五入后为$5$,问最少需要重做几次实验

Sol

直接贪心,肯定是先重新做得分少的,先排序,枚举的时候判断一下是否已经合格就行了

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN = 1e5 + ;
inline int read() {
char c = getchar(); int x = , f = ;
while(c < '' || c > '') {if(c == '-') f = -; c = getchar();}
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x * f;
}
int a[MAXN];
int main() {
double N = read(), S = ;
int x = N;
for(int i = ; i <= N; i++) a[i] = read(), S += a[i];
sort(a + , a + x + );
if(S / N >= 4.5) {printf(""); return ;}
for(int i = ; i <= N; i++) {
S -= a[i]; S += ;
if(S / N >= 4.5) {
printf("%d", i); return ;
}
}
return ;
}

C. Candies(二分)

题目大意:

Vasya有$n$个糖果,在开始的时候 Vasya 选择了一个整数$k$,表示他每天会吃$k$个糖果,Petya想偷吃一部分糖果,他每天会吃当前数量的$10\%$(下去整)的糖果

注意:若Vasya应该吃糖果且不满$k$,Vasya会全吃掉。若Petya吃糖果时数量不满$10$个,则Petya不会吃糖果

输出最小的$k$,使得$Vasya$至少吃掉一半的糖果

Sol

很显然$k$有单调性,直接二分即可

因为$Petya$每次会吃掉$10\%$的糖果,因此吃糖果的过程会很快,直接模拟即可

#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
inline int read() {
char c = getchar(); int x = , f = ;
while(c < '' || c > '') {if(c == '-') f = -; c = getchar();}
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x * f;
}
int N;
bool check(int k) {
int cur = , Ansa = , Ansb = , now = N;
while(now > ) {
if(cur & ) Ansa += min(k, now), now -= min(k, now);
else Ansb += now / , now -= now / ;
cur ^= ;
}
return Ansa >= Ansb;
}
main() {
N = read();
int l = , r = N, ans = ;
check();
while(l <= r) {
int mid = l + r >> ;
if(check(mid)) r = mid - , ans = mid;
else l = mid + ;
}
printf("%I64d", ans);
}

D. Bishwock(dp)

题目大意:

Bishwock是一种特殊的棋,它的放置规则如下所示(类似于俄罗斯方块)

给出一个$2*n$的初始局面,问最多能放多少个棋(X代表此处不能放,0代表次数可以放)

Sol

rank1的代码神奇啊,学不来

我只会暴力dp,设$f[i][j]$表示到第$i$行,状态为$j$(一共四种状态)的最大值,$g[i]$表示第$i$行所有状态的最大值(对f[i][1/2/3/4]取max)

转移的时候判断一下可以从哪里转移而来

 #include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAXN = ;
char s1[MAXN], s2[MAXN];
int f[MAXN][], g[MAXN];
int getg(int x) {
int ans = ;
for(int i = ; i <= x; i++)
ans = max(ans, g[i]);
return ans;
}
int main() {
scanf("%s %s", s1 + , s2 + );
int N = strlen(s1 + ), ans = ;
for(int i = ; i <= N; i++) {
for(int k = ; k <= ; k++)
f[i][k] = getg(i - );
if(s1[i] == '' && s2[i] == '') {
if(s1[i - ] == '') {
f[i][] = max(f[i][], g[i - ] + );
if(s2[i - ] == '')
f[i][] = max(f[i][], f[i - ][] + );
}
if(s2[i - ] == '') {
f[i][] = max(f[i][], g[i - ] + );
if(s1[i - ] == '')
f[i][] = max(f[i][], f[i - ][] + );
}
}
if(s1[i] == '') {
if(s1[i - ] == '' && s2[i - ] == '')
f[i][] = max(f[i][], g[i - ] + );
}
if(s2[i] == '') {
if(s1[i - ] == '' && s2[i - ] == '')
f[i][] = max(f[i][], g[i - ] + );
}
for(int k = ; k <= ; k++)
g[i] = max(f[i][k], g[i]);
ans = max(ans, g[i]);
}
printf("%d", ans);
return ;
}

总结

战况惨烈。

Codeforces Round #491 (Div. 2)部分题解的更多相关文章

  1. Codeforces Round #491 (Div. 2)

    Codeforces Round #491 (Div. 2) https://codeforces.com/contest/991 A #include<bits/stdc++.h> us ...

  2. # Codeforces Round #529(Div.3)个人题解

    Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...

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

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

  4. Codeforces Round #540 (Div. 3) 部分题解

    Codeforces Round #540 (Div. 3) 题目链接:https://codeforces.com/contest/1118 题目太多啦,解释题意都花很多时间...还有事情要做,就选 ...

  5. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  6. Codeforces Round #531 (Div. 3) ABCDEF题解

    Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...

  7. Codeforces Round #527 (Div. 3) ABCDEF题解

    Codeforces Round #527 (Div. 3) 题解 题目总链接:https://codeforces.com/contest/1092 A. Uniform String 题意: 输入 ...

  8. Codeforces Round #499 (Div. 1)部分题解(B,C,D)

    Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...

  9. Codeforces Round #545 (Div. 1) 简要题解

    这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...

随机推荐

  1. Android使用主题属性引发的问题

    最近在做一个项目的Porting.直接改变了应用的Theme,最没有仔细的检查.结果应用在某些场景下直接就Crash了.还好,通过Log可以看到是在Inflate某个资源的时候出错导致的.通过定位资源 ...

  2. Bash 终端快捷键

    在终端下输大量的命令,有些快捷键还是挺有帮助的. 跳跃 跳到最后 ctrl + e (end) 跳到最前 ctrl + a (abcde....) 向后跳一个单词 alt + 右方向键 向前跳一个单词 ...

  3. CSS的两种格式化上下文:BFC和IFC

    CSS的两种格式化上下文   文章包含很多个人理解,如果错误,欢迎指出~   在看本文之前,你要对CSS的盒子模型,Block-Level元素,Inline-Level元素有所了解,具体可参考CSS的 ...

  4. matlab练习程序(弧形投影)

    这个其实也算是圆柱体投影了,不过上一篇文章是从正面看,得到的是凸形的结果,而这个是从反面看,得到的是凹形的结果. 计算公式就不写了,大致介绍一下,计算公式中关于x坐标求法和上篇一样,y坐标则正好是上篇 ...

  5. 再学UML-深入浅出UML类图(三)

    类与类之间的关系(2)       2. 依赖关系  依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系. ...

  6. May 23rd 2017 Week 21st Tuesday

    Winners are not those who never fail but those who never quit. 成功者不是从不失败,而是从不放弃. Nothing is impossib ...

  7. SPOJ 694 不同子串个数

    一个论文题,求一个字符串有多少个不同的子串. 每个字符串可以看做一个后缀的前缀,然后,就转换为求每一个后缀中,不同的子串有多少. 每一个后缀,根据长度,可以提供len - sa[i] 个子串,但是,画 ...

  8. 「bzoj3956: Count」

    题目 刚开始并没有看懂题意于是痛苦的挣扎了好久 题意是这样的 问\([l,r]\)有多少对\((i,j)\)满足\(a_i\)和\(a_j\)恰好是\(a_i...a_j\)中严格最大的两个数 强制在 ...

  9. <知识整理>2019清北学堂提高储备D3

    全天动态规划入门到入坑... 一.总概: 动态规划是指解最优化问题的一类算法,考察方式灵活,也常是NOIP难题级别.先明确动态规划里的一些概念: 状态:可看做用动态规划求解问题时操作的对象. 边界条件 ...

  10. CentOS6.6上进程挂起的诡异问题和处理

    由于新的服务器不再支持CentOS5.4系统了,我们在新装机器上安装CentOS6.6.随着CentOS6.6机器的增多,我们逐渐注意到一个诡异问题:运行在这些机器上的某些进程,容易莫名其妙地挂起(举 ...