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++. ...
随机推荐
- 美团面试官问我: ZGC 的 Z 是什么意思
本文的阅读有一定的门槛,请先了解 GC 的基本只知识. 现代垃圾收集器的演进大部分都是往减少停顿方向发展. 像 CMS 就是分离出一些阶段使得应用线程可以和垃圾回收线程并发,当然还有利用回收线程的并行 ...
- git , repo out off memory
解决方法,建立swap # dd if=/dev/zero of=/root/myswapfile bs=1M count=1024 1024+0 records in 1024+0 records ...
- opencv 学习1 gui属性
1.图像 先定一个小目标学习两个个功能 1.学习怎样读入一副画像,以及如何保存一副图像 2.学习三个函数cv2.imread(), cv2.imshow() , cv2.imwrite() 1.1读入 ...
- 如何替换Ceph的Journal
很多人会提出这样的问题: 能不能够将 Ceph journal 分区从一个磁盘替换到另一个磁盘? 怎样替换 Ceph 的 journal 分区? 有两种方法来修改Ceph的journal: 创建一个j ...
- 一篇文章了解_unittest
1. 基本概念 2018年10月7日 星期日 11:39 unittest是python自带的单元测试框架,有时候又被称为"PyUnit",是python版本的JUint实现. 该 ...
- 在 macOS 中使用 Podman
原文链接:https://fuckcloudnative.io/posts/use-podman-in-macos/ Podman 是一个无守护程序与 Docker 命令兼容的下一代 Linux 容器 ...
- 精尽MyBatis源码分析 - MyBatis初始化(二)之加载Mapper接口与XML映射文件
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
- 标准库之collections
collections 模块----Python标准库,是数据结构常用模块 常用类型有: 计数器(Counter) dict的子类,计算可hash的对象: 双端队列(deque) 类似于list ...
- zabbix的搭建及操作(3)监控 MySQL 及 HTTP 状态监控
书接上回 -- 详情点击 Server端以配置好 mariadb(MySQL) 及 http 服务 Zabbix实现监控 mysql 数据库 server服务器端配置 vim /usr/local/z ...
- web自动化 下拉框、切换到新窗口
一.下拉框 相信大家在手动测试web页面时,遇到过下拉框吧,那进行web自动化测试时,如何操作下拉框,且看下文 1.selenium中提供了方法,先导入Select方法 from selenium.w ...