Educational Codeforces Round 21 Problem A - C
Problem A Lucky Year
题目传送门[here]
题目大意是说,只有一个数字非零的数是幸运的,给出一个数,求下一个幸运的数是多少。
这个幸运的数不是最高位的数字都是零,于是只跟最高位有关,只保留最高位,然后加一求差就是答案。
Code
/**
* Codeforces
* Problem#808A
* Accepted
* Time:15ms
* Memory:0k
*/
#include<iostream>
#include<cstdio>
#include<ctime>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<sstream>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
typedef bool boolean;
#define inf 0xfffffff
#define smin(a, b) a = min(a, b)
#define smax(a, b) a = max(a, b)
#define max3(a, b, c) max(a, max(b, c))
#define min3(a, b, c) min(a, min(b, c))
template<typename T>
inline boolean readInteger(T& u){
char x;
int aFlag = ;
while(!isdigit((x = getchar())) && x != '-' && x != -);
if(x == -) {
ungetc(x, stdin);
return false;
}
if(x == '-'){
x = getchar();
aFlag = -;
}
for(u = x - ''; isdigit((x = getchar())); u = (u << ) + (u << ) + x - '');
ungetc(x, stdin);
u *= aFlag;
return true;
} int power[]; int n;
int bits = ; inline void init() {
power[] = ;
for(int i = ; i <= ; i++)
power[i] = power[i - ] * ;
} inline void solve() {
readInteger(n);
while(power[bits] <= n) bits++;
int high = n - n % power[bits - ];
int next = high + power[bits - ];
printf("%d\n", next - n);
} int main() {
init();
solve();
return ;
}
Problem A
Problem B Average Sleep Time
题目传送门[here]
题目大意是说,给出n个数ai和k,再得到n - k + 1个新数,第i个新数为
,再求这几个新数的平均数。
有两种方法,第一种是前缀和暴力乱搞。第二种是特殊处理两段的数被求和的次数,中间的都是k,然后就可以求和了,然后就可以求平均数。
我呢,用的第一种方法,因为懒。
Code
/**
* Codeforces
* Problem#808B
* Accepted
* Time:30ms
* Memory:2400k
*/
#include<iostream>
#include<cstdio>
#include<ctime>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<sstream>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
typedef bool boolean;
#define inf 0xfffffff
#define smin(a, b) a = min(a, b)
#define smax(a, b) a = max(a, b)
#define max3(a, b, c) max(a, max(b, c))
#define min3(a, b, c) min(a, min(b, c))
template<typename T>
inline boolean readInteger(T& u){
char x;
int aFlag = ;
while(!isdigit((x = getchar())) && x != '-' && x != -);
if(x == -) {
ungetc(x, stdin);
return false;
}
if(x == '-'){
x = getchar();
aFlag = -;
}
for(u = x - ''; isdigit((x = getchar())); u = (u << ) + (u << ) + x - '');
ungetc(x, stdin);
u *= aFlag;
return true;
} #define LL long long int n, k;
LL *sum;
int* a;
double w; inline void init() {
readInteger(n);
readInteger(k);
w = n - k + ;
sum = new LL[(const int)(n + )];
a = new int[(const int)(n + )];
sum[] = ;
for(int i = ; i <= n; i++) {
readInteger(a[i]);
sum[i] = sum[i - ] + a[i];
}
} LL s = ;
double avg = 0.0; inline void solve() {
for(int i = k; i <= n; i++) {
s += sum[i] - sum[i - k];
}
avg = s / w;
printf("%.9lf", avg);
} int main() {
init();
solve();
return ;
}
Problem B
Problem C Tea Party
题目传送门[here]
语文不好,题目大意就不给了(显然是太懒了),去看原题吧,看不懂扔给谷歌机翻。
首先呢给每人达到最低要求的茶叶量,这时判一下是否合法。(然后跳过一个if吧)。
接着很容易想到一个符合题意的贪心,给茶杯最大的人加尽可能多的茶叶(能加满就加满),如果还有剩的,就给茶杯第二大的人加....
这个显然是合法,不会出现让顾客不满意的情况。
Code
/**
* Codeforces
* Problem#808C
* Accepted
* Time:15ms
* Memory:0k
*/
#include<iostream>
#include<cstdio>
#include<ctime>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<sstream>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
typedef bool boolean;
#define inf 0xfffffff
#define smin(a, b) a = min(a, b)
#define smax(a, b) a = max(a, b)
#define max3(a, b, c) max(a, max(b, c))
#define min3(a, b, c) min(a, min(b, c))
template<typename T>
inline boolean readInteger(T& u){
char x;
int aFlag = ;
while(!isdigit((x = getchar())) && x != '-' && x != -);
if(x == -) {
ungetc(x, stdin);
return false;
}
if(x == '-'){
x = getchar();
aFlag = -;
}
for(u = x - ''; isdigit((x = getchar())); u = (u << ) + (u << ) + x - '');
ungetc(x, stdin);
u *= aFlag;
return true;
} typedef class Teacup {
public:
int val;
int pos; Teacup(int val = , int pos = ):val(val), pos(pos) { } boolean operator < (Teacup b) const {
if(val != b.val) return val > b.val;
return pos < b.pos;
}
}Teacup; int n;
int w;
int *a;
int s = ;
int *b;
Teacup* tc; inline void init() {
readInteger(n);
readInteger(w);
a = new int[(const int)(n + )];
b = new int[(const int)(n + )];
for(int i = ; i <= n; i++) {
readInteger(a[i]);
b[i] = (a[i] + ) / ;
s += b[i];
}
} inline void solve() {
if(s > w) {
puts("-1");
return;
}
w -= s;
tc = new Teacup[(const int)(n + )];
for(int i = ; i <= n; i++)
tc[i] = Teacup(a[i], i);
sort(tc + , tc + n + );
int i = ;
while(w) {
i++;
int delta = min(w, tc[i].val - b[tc[i].pos]);
b[tc[i].pos] += delta;
w -= delta;
}
for(int i = ; i <= n; i++) {
printf("%d ", b[i]);
}
} int main() {
init();
solve();
return ;
}
Problem C
Educational Codeforces Round 21 Problem A - C的更多相关文章
- Educational Codeforces Round 21 Problem E(Codeforces 808E) - 动态规划 - 贪心
After several latest reforms many tourists are planning to visit Berland, and Berland people underst ...
- Educational Codeforces Round 21 Problem D(Codeforces 808D)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- Educational Codeforces Round 21 Problem F (Codeforces 808F) - 最小割 - 二分答案
Digital collectible card games have become very popular recently. So Vova decided to try one of thes ...
- Educational Codeforces Round 21
Educational Codeforces Round 21 A. Lucky Year 个位数直接输出\(1\) 否则,假设\(n\)十进制最高位的值为\(s\),答案就是\(s-(n\mod ...
- Educational Codeforces Round 21 D.Array Division(二分)
D. Array Division time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
- Educational Codeforces Round 21(A.暴力,B.前缀和,C.贪心)
A. Lucky Year time limit per test:1 second memory limit per test:256 megabytes input:standard input ...
- Educational Codeforces Round 32 Problem 888C - K-Dominant Character
1) Link to the problem: http://codeforces.com/contest/888/problem/C 2) Description: You are given a ...
- CF Educational Codeforces Round 21
A. Lucky Year time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Educational Codeforces Round 21 A-E题题解
A题 ............太水就不说了,贴下代码 #include<string> #include<iostream> #include<cstring& ...
随机推荐
- 500 status http status code 状态码
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status Server error responses 500 Internal Server ...
- ElasticSearch报 EsThreadPoolExecutor[search, queue capacity = 1000, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@c0efba
ElasticSearch报以下错误的解决办法: "type": "es_rejected_execution_exception", "reason ...
- MySQL 同一实例不同库之间表同步(Otter 应用)
1 需求 在同一台服务器同一MySQL实例中的source库和target库都存在student表.如果source库中该表发生增删改操作时,也需要体现到target库的student表中: 2 解决 ...
- 【python-opencv】22-直方图
直方图目录: 22.1 直方图的计算,绘制与分析 22.1.1 统计直方图 22.1.2 绘制直方图 22.1.3 使用掩膜(遮罩) 22.2 直方图均衡化 22.2.1 OpenCV中的直方图均衡化 ...
- HTML5 web 存储
简介: HTML5 web 存储,一个比cookie更好的本地存储方式. 首先我们先了解一下: 什么是 HTML5 Web 存储? 使用html5可以在本地存储用户的浏览数据. 早些时候,本地存储使用 ...
- 如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
copy内容的网址: https://segmentfault.com/a/1190000007020623 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要 ...
- MySQL管理之道:性能调优、高可用与监控》迷你书
MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4. ...
- Jquery WeUI(一)
用于微信端的控件UI , 首先,需要做的是开发一个微信能访问的网页,并和微信关联 A. 创建一个空网站 B. 增加一般处理程序 A. 增加 web 网页 和空文件到项目中 B. 申请和配置测试服务 创 ...
- What is Druid?
Druid is a data store designed for high-performance slice-and-dice analytics ("OLAP"-style ...
- SQL 3
SQL SELECT DISTINCT 语句 SELECT DISTINCT 语句用于返回唯一不同的值. SQL SELECT DISTINCT 语句 在表中,一个列可能会包含多个重复值,有时您也许希 ...