Codeforces Edu Round 47 A-E
A. Game Shopping
按照题意模拟既可。
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1010;
int n, m, c[N], a[N], ans = 0;
int main(){
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) scanf("%d", c + i);
for(int i = 1; i <= m; i++) scanf("%d", a + i);
for(int i = 1, j = 1; i <= n; i++)
if(c[i] <= a[j]) ans ++, j++;
printf("%d", ans);
return 0;
}
B. Minimum Ternary String
- 邻项交换的特性决定了
1
可以随意活动。 0
和2
唯独相互遇上不可交换,也就是说0和2的相对位置保持不变。
依据特性,将1尽量靠前放置既可。
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string str;
int main(){
cin >> str;
int cnt = 0;
for(int i = 0; i < str.size(); i++)
if(str[i] == '1') cnt ++ ;
for(int i = 0; i < str.size(); i++){
if(str[i] == '1') continue;
else if(str[i] == '2' && cnt){
for(int j = 0; j < cnt; j++) printf("1"); cnt = 0;
}
printf("%c", str[i]);
}
if(cnt)for(int j = 0; j < cnt; j++) printf("1");
return 0;
}
C. Annoying Present
要使平均值最大,只需让总和最大即可。
\(x * d\) 的贡献是定值,只关注 \(\sum\limits_{i=1}^n\ d * |i - j|\) 既可。
- 若 \(d > 0\),则令 \(\sum\limits_{i=1}^n\ |i - j|\) 最大。显然 \(i\) 取 \(0\) 或 \(n\) 时,值最大。
- 若 \(d < 0\) ,则令 \(\sum\limits_{i=1}^n\ |i - j|\) 最小。显然 \(i\) 取 n 中位数 $ \lfloor (n + 1) / 2\rfloor$时,值最小。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
const int N = 100010;
typedef long long LL;
int n, m, x, d;
LL sum = 0, MAX = 0, MIN = 0;
int main(){
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++){
MAX += abs(i - 1);
MIN += abs(i - (n + 1) / 2);
}
for(int i = 1; i <= m; i++){
int x, d; scanf("%d%d", &x, &d);
if(d > 0) sum += x * n + d * MAX;
else sum += x * n + d * MIN;
}
printf("%.15f", double(sum) / n);
return 0;
}
D. Relatively Prime Graph
暴力可行。
任取两个正整数,他们互素的概率为\(6/π^2\)。参考
维基百科: In a sense that can be made precise, the probability that two randomly chosen integers are coprime is \(6/π^2\) (see pi), which is > about 61%. See below.
则我们最多只需筛选 \(100000 / 6/π^2 \approx 100000 / 61\% < 200000\) 的数,不会超时。
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int N = 100010;
int n, m, tot = 0;
int gcd(int a, int b){
return b ? gcd(b, a % b) : a;
}
vector<int> G[N];
void gcd_prework(){
for(int i = 1; i <= n; i++){
for(int j = i + 1; j <= n; j++){
if(gcd(i, j) == 1){
++tot; G[i].push_back(j);
if(tot >= m) return;
}
}
}
}
int main(){
scanf("%d%d", &n, &m);
if(m < n - 1)
puts("Impossible");
else{
gcd_prework();
if(tot < m) puts("Impossible");
else{
puts("Possible");
for(int i = 1; i <= n; i++)
for(int j = 0; j < G[i].size(); j++)
printf("%d %d\n", i, G[i][j]);
}
}
return 0;
}
E - Intercity Travelling
退了半天式子自闭了,找规律题,从前一步推向后一步既可。把图画出来可能好理解一点。
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
const int N = 1000010, Mod = 998244353;
int n, a[N], s, g;
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d", a + i);
for(int i = 1; i <= n; i++){
s = ((LL)s * 2 + a[i] + a[i - 1] + g * 2) % Mod;
g = ((LL)g * 2 + a[i - 1]) % Mod;
}
cout << s;
return 0;
}
Codeforces Edu Round 47 A-E的更多相关文章
- codeforces水题100道 第三题 Codeforces Beta Round #47 A. Domino piling (math)
题目链接:http://www.codeforces.com/problemset/problem/50/A题意:一个NxM的举行中最多能放多少个1x2的矩形.C++代码: #include < ...
- Codeforces Beta Round #44 (Div. 2)
Codeforces Beta Round #44 (Div. 2) http://codeforces.com/contest/47 A #include<bits/stdc++.h> ...
- Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...
- Codeforces Beta Round #62 题解【ABCD】
Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...
- Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】
Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...
- Codeforces Beta Round #13 C. Sequence (DP)
题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考 ...
- CodeForces Global Round 1
CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...
- Codeforces Global Round 1 - D. Jongmah(动态规划)
Problem Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...
- Codeforces Beta Round #79 (Div. 2 Only)
Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...
随机推荐
- <连接器和加载器>——概述连接器和加载器
0.涉及术语 (1)地址绑定 将抽象的符号与更抽象的符号绑定,如 sqrt 符号与地址 0x0020010绑定. (2)符号解析 程序相互作用通过符号进行,如主程序调用库函数sqrt,连接器通过表明分 ...
- mimikatz使用
mimikatz使用 需要用管理员权限打开 privilege::debug sekurlsa::logonpasswords 已测试系统 Windows Server 2008 R2 Datacen ...
- msfconsle核心命令学习
back 取消当前模块 banner check 检查当前exploit是否对目标有效,并不进行真正的攻击 color 禁用或启用输出是否包含颜色 connect 可以通过connect命令来链接Ne ...
- EasyRecovery帮您轻松拯救办公室断电后的文件丢失
故事要从半个月前说起,某天中午,社畜小编得到了上头的传令,要为即将到来的双十一狂欢节写一个活动策划案. 想着时间也不是很充裕,还要留一些时间修修补补,于是小编连续三天挑灯夜战,终于在某天周五的晚上把策 ...
- 两种方式教你搞定在mac中格式化磁盘的问题
mac怎么格式化u盘?想必这是大部分苹果用户都会关心的一个问题.格式化u盘在我们日常工作中算是一个比较常规的操作了.但是在mac中随着系统版本不一样,格式化的方式也略有差别.今天,小编将以Mac OS ...
- jQuery 第六章 实例方法 动画
.show() .hide() .toggle() .fadeIn() .fadeout() .fadeToggle() .fadeTo() .slideDown() .slideUp() .slid ...
- python中操作数据库
python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...
- Redis多线程原理详解
本篇文章为你解答一下问题: 0:redis单线程的实现流程是怎样的? 1:redis哪些地方用到了多线程,哪些地方是单线程? 2:redis多线程是怎么实现的? 3:redis多线程是怎么做到无锁的? ...
- Redis 基础设计结构之三 hash(哈希)
Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下hash(哈希),hash的数 ...
- Yali 2019-8-15 test solution
T1. 送货 Description 物流公司要用m辆车派送n件货物.货物都包装成长方体,第i件的高度为hi,重量为wi.因为车很小,一辆车上的货物必须垒成一摞.又因为一些不可告人的原因,一辆车上货物 ...