Codeforces Round #601 (Div. 2)】的更多相关文章

Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/problem/A /* 签到题 简单的贪心题 本考虑过是否有先小于再加上去会更小的情况 但两种情况恰好步数是一样的 */ #include<iostream> #include<cstdio> #include<cmath> using namespace std; int…
传送门 A. Changing Volume 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/19 22:37:33 */ #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() #define…
Codeforces Round #601 (Div. 2) E2. Send Boxes to Alice (Hard Version) N个盒子,每个盒子有a[i]块巧克力,每次操作可以将盒子中的一块巧克力左移或右移,要求移动后的每个盒子中的巧克力数量都能被k整除(无视空盒子),求最小的操作数.(1<=N<=1e6,0<=a[i]<=1e6) 题解 k只需考虑巧克力总数的质因子 考虑每个盒子的贡献,盒子中可以保存k的整数倍(k*i)块巧克力,从左向右递推,每个盒子保留最大数目的…
#include <bits/stdc++.h> using namespace std; typedef long long ll; ; int a[N]; int n; bool prime(int x) {//判断是否为质数 ; i*i <= x; i++) { ) return false; } return true; } ll solve(int x) { vector<int>b; ll ans = ; ; i <= n; i++) { &&…
//为了连贯,采取一条路形式,从第一行开始 也就是s型 #include <bits/stdc++.h> using namespace std; ; char str[MAXN][MAXN]; vector<char> ch;//存放鸡的名字 void init() { '; i++) ch.emplace_back(i); for(char i='A'; i<='Z'; i++) ch.emplace_back(i); for(char i='a'; i<='z';…
把每一次输入的一组数字存下来,然后把每个数字出现的组数存下来 然后找只出现过一次的数字a,那么这个数字a不是开头就是结尾,默认为开头(是哪个都无所谓),然后去找和它出现在同一组的两个数字b和c,而b和c同时出现的只有两组,除了已经知道的,就是需要去查找的,然后循环,同时存在的组数,找到两个数字a和b同时出现的组而且不是第一组,找到之后的组的第三个数字,就是要接在后面的数字,然后循环这个操作 #include <bits/stdc++.h> using namespace std; ][];//…
//题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环.然后再把剩余的最短的边连接起来 #include<iostream> #include<algorithm> using namespace std ; ; int n,m; struct edge { int num; int w; } a[N]; int T; bool cmp(edge a,edge b) { return a.w<b.w; } void solve() { ; ; i<=n; i+…
好吧,其实我拿到这个题的时候,首先想到了bfs,写完之后,开开森森的去交代码,却在第二个数据就TEL,然后优化半天,还是不行. 最终,我盯着1,2,5发呆半天,wc,然后直接贪心 #include<iostream> using namespace std; int main() { int T; cin>>T; while(T--) { int a,b; cin>>a>>b; int x = abs(a - b); ; x %= ; ans += x /…
先分解质因数,对于当前a[i],假设当前的质因数为x,这个位置要满足能被k整除,有两个可能,要么是它向后一个转移x%k个,要么是后一个向它转移k-x%k个. 对于每一个a[i]满足后,因为只会对下一个位置产生影响,所以下一个位置a[i+1]算上a[i]产生的影响,之后又是一个新的子问题(禁止套娃). 对于每一个质因数x,对所有所有位置i求min(a[i],x-a[i])的和,取所有质因子i的求和的最小值作为答案. #define HAVE_STRUCT_TIMESPEC #include<bit…
#define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; vector<char>ans; ][]; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ';++i) ans.emplace_back(i); for(int i='A';i<='Z';++i) ans.emplace_back(i…