Educational Codeforces Round 35 B/C/D
B. Two Cakes
传送门:http://codeforces.com/contest/911/problem/B
本题是一个数学问题。
有a个Ⅰ类球,b个Ⅱ类球;有n个盒子。将球放入盒子中,要求:
①所有的球均被放入盒子中;
②每一个盒子中至少有一个球;
③一个盒子里至多只能有一类球。
设将所有的球放入盒子后,每个盒子里至少有x个球。求x的最大值。
由上述规则可知,一个盒子或放入Ⅰ类球,或放入Ⅱ类球。设放入Ⅰ类球的盒子数为i,放入Ⅱ类球的盒子数为j,则:i+j=n。
于是,为使盒子中放入球的最小个数最大化,应尽量遵循平均性原则。于是,在放入Ⅰ类球的盒子中,每个盒子至少有[a/i]个球;在放入Ⅱ类球的盒子中,每个盒子至少有[b/j]个球。
于是,设cur(i)=min{[a/i],[b/j]},则所求的x即为遍历i=1,2,...,n-1时,cur(i)取得的最大值。
参考程序如下:
#include <stdio.h> int min(int a, int b)
{
return a < b? a: b;
} int main(void)
{
int n, a, b;
scanf("%d%d%d", &n, &a, &b);
int x = ;
for (int i = ; i <= a && i < n; i++) {
int j = n - i;
int cur = min(a / i, b / j);
if (cur > x) x = cur;
}
printf("%d\n", x);
return ;
}
C. Three Garlands
传送门:http://codeforces.com/contest/911/problem/C
本题是一个数学问题。
给定三个正整数数k1,k2,k3,于是,对于给定的三个正整数x1,x2,x3,可以按照周期性规则,构成三个集合{x1+nk1|n=0,1,2,...},{x2+nk2|n=0,1,2,...},{x3+nk3|n=0,1,2,...}。现要求这三个集合的并集覆盖max{x1,x2,x3}及以后的所有自然数。试问对于给定的k1,k2,k3,是否存在一组x1,x2,x3,满足上述要求?
以下几种情形是满足要求的:
以下用“O”代表被数列中某一元素存在,“X”代表该元素不存在,则:
①若k1,k2,k3为{1,?,?},则将出现“OOOO…”的情形,显然构成了连续的整数区间;
②若k1,k2,k3为{2,2,?},则可以构造以下情形:
a.OXOXOXOX…
b.XOXOXOXO…
---------
OOOOOOOO…
如此,也可以构成了连续的整数区间;
③若k1,k2,k3为{3,3,3},则可以构造以下情形:
a.OXXOXXOXX…
b.XOXXOXXOX…
c.XXOXXOXXO…
----------
OOOOOOOOO…
如此,也可以构成了连续的整数区间;
④除此之外,若k1,k2,k3为{4,4,2},则可以构造以下情形:
a.OXXXOXXXO…
b.XXOXXXOXX…
c.XOXOXOXOX…
----------
OOOOOOOOO…
这里请关注情形④!!序列a、b恰好组成一个周期为2的序列“OXOXOXOXO…”。
除此之外,不存在满足条件的k1,k2,k3。
参考程序如下:
#include <stdio.h> int main(void)
{
int cnt[] = {};
for (int i = ; i < ; i++) {
int k;
scanf("%d", &k);
if (k <= ) cnt[k]++;
}
if (cnt[] >= || cnt[] >= || cnt[] == ||
cnt[] == && cnt[] == ) printf("YES\n");
else printf("NO\n");
return ;
}
D. Inversion Counting
传送门:http://codeforces.com/contest/911/problem/D
本题是一个序列上的问题——逆序对。
定义数列{ai|i=1,2,...,n}的逆序对如下:对于所有的1≤j<i≤n,若ai<aj,则<i,j>为一个逆序对。
于是,对于一个数列a[1..n],给定m次操作。对于每一次操作,给定l,r(1≤l<r≤n),将序列a[l..r]倒置。求倒置后的逆序对数——的奇偶性。
提到逆序对数,首先可以考虑——树状数组?归并排序?
然而,本题只需要求解逆序对数的奇偶性,于是设置一个0-1型变量flag,表示当前逆序对数的奇偶性。首先,计算初始序列的逆序对数。
之后,考虑某一次倒置操作:对于给定的l,r,记d=l-r+1,若倒置前序列a[l..r]的逆序对数为x,则倒置后序列的逆序对数为Cd2-x。于是,考虑Cd2的奇偶性即可。若这是一个奇数,则逆序对数的奇偶性变化;否则不变化。参考程序如下:
#include <stdio.h>
#include <stdbool.h>
#define MAX_N 2000 int a[MAX_N]; int main(void)
{
int n;
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d", &a[i]);
bool flag = ;
for (int i = ; i < n; i++) {
for (int j = ; j < i; j++) {
if (a[i] < a[j]) flag = !flag;
}
}
int m;
scanf("%d", &m);
while (m--) {
int l, r;
scanf("%d%d", &l, &r);
int d = r - l + ;
if (d & ) flag = !flag;
if (flag) printf("odd\n");
else printf("even\n");
}
return ;
}
Educational Codeforces Round 35 B/C/D的更多相关文章
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Educational Codeforces Round 35 A. Nearest Minimums【预处理】
[题目链接]: Educational Codeforces Round 35 (Rated for Div. 2) A. Nearest Minimums time limit per test 2 ...
- Educational Codeforces Round 35 (Rated for Div. 2)A,B,C,D
A. Nearest Minimums time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Three Garlands~Educational Codeforces Round 35
C. Three Garlands time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Educational Codeforces Round 35 B. Two Cakes【枚举/给盘子个数,两份蛋糕块数,最少需要在每个盘子放几块蛋糕保证所有蛋糕块都装下】
B. Two Cakes time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- Educational Codeforces Round 35
Nearest Minimums 相同的数里最小的数里的最小距离 Solution Two Cakes Solution Three Garlands 瞎比试 Solution Inversion C ...
- 【Educational Codeforces Round 35 D】Inversion Counting
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 排列中交换任意两个数字. 排列的逆序对个数的奇偶性会发生变化. 翻转这个过程其实就是len/2对数字发生交换. 交换了偶数次的话,不 ...
- 【Educational Codeforces Round 35 C】Two Cakes
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 直觉题. 感觉情况会很少. 毕竟间隔太大了.中间肯定有一些数字达不到. 有1肯定可以 2 2 x肯定可以 3 3 3也可以 2 4 ...
- 【Educational Codeforces Round 35 B】Two Cakes
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 从小到大枚举x. 看看a/x+b/x是不是大于等于n 是的话. 看看是不是两种蛋糕都能凑一堆. 也即x的最大枚举量是min(a,b) ...
随机推荐
- 微信小程序初探(二、分页数据请求)
大家好 波哥小猿又来啦[斜眼笑],昨天咱们讲了微信小程序简单数据请求,有没有照着教程实现请求的同学们啦 实现的同学举个爪[笑脸].哈哈,好了不扯犊子啦,我相信有的同学已经实现了简单的数据请求,没有实现 ...
- setprecision、fixed、showpoint的用法总结(经典!!超经典!!)【转】
本文转载自:http://blog.csdn.net/u011321546/article/details/9293547 首先要加头文件:iomanip 一:setprecision 作用:控制输出 ...
- C# 验证数字的正则表达式集
验证数字的正则表达式集 博客分类: 正则 正则表达式 验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d ...
- hdu 1242(BFS+优先队列)
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 687C
dp 以前做过 忘了. 想破脑袋不知道怎么设状态 dp[i][j][k]表示选到第i个硬币,当前和为j,能否弄出k dp[i][j][k]|=dp[i-1][j][k]|dp[i-1][j][k-c[ ...
- Python中的math和保留小数位数方法
转载自 http://xukaizijian.blog.163.com/blog/static/17043311920111163272414/ math模块实现了许多对浮点数的数学运算函数. 这些 ...
- sql将一个表中的数据插入到另一个表中
sql将一个表中的数据插入到另一个表中 列名不一定要相同,只要你在HH中列出要插入列的列表跟select from mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的. ...
- bzoj1593 [Usaco2008 Feb]Hotel 旅馆(线段树)
1593: [Usaco2008 Feb]Hotel 旅馆 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 758 Solved: 419[Submit ...
- Spring Data 自动生成
之前一直用的mybatis逆向自动生成,由于最近学习springdata,所以看了一下springdata的自动生成,基本与mybatis一致,不同的也许就是逆向生成代码(实体类,mapper等)和正 ...
- [转]逐步解說:在 WPF 應用程式中使用 ReportViewer 显示 rdlc
本文转自:http://msdn.microsoft.com/zh-tw/library/hh273267 若要在 WPF 應用程式中使用 ReportViewer 控制項,您需要將 ReportVi ...