571B. Minimization(Codeforces Round #317)】的更多相关文章

B. Minimization time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You've got array A, consisting of n integers and a positive integer k. Array A is indexed by integers from 1 to n. You need…
原题链接:http://codeforces.com/contest/572/problem/D 题意 给你个数组A和n,k,问你排列A后,下面的最小值是多少. 题解 先排个序,要填充像1,1+k,1+2k,1+3k....这样的序列,或像2,2+k,2+2k.......这样的序列,这些序列应该取排序数组中连续的一段才能使得答案最小,现在考察这些序列的大小,发现其大小要么是n/k,要么是n/k+1,所以可以dp[i][j]表示前 i 条序列我取了 j 个n/k这样的序列.转移就很简单了,详见代…
D. Minimization time limit per test  2 seconds memory limit per test  256 megabytes input  standard input  output  standard output You've got array A, consisting of n integers and a positive integer k. Array A is indexed by integers from 1 to n. You…
Lengthening Sticks Problem's Link: http://codeforces.com/contest/571/problem/A Mean: 给出a,b,c,l,要求a+x,b+y,c+z构成三角形,x+y+z<=l,成立的x,y,z有多少种. analyse: 这题在推公式的时候细心一点就没问题了. 基本的思路是容斥:ans=所有的组合情况-不满足条件的情况. 1.求所有的组合情况 方法是找规律: 首先只考虑l全部都用掉的情况. l=1:3 l=2:6 l=3:10…
原题链接:http://codeforces.com/contest/572/problem/B 题意 很迷,自行看题. 题解 看懂题就会做了 代码 #include<iostream> #include<cstring> #include<algorithm> #define MAX_N 100005 using namespace std; int n,s; struct exchange { public: bool ty; int p, q; double sp…
题目链接:http://codeforces.com/contest/572/problem/A 题意 就给你两个数组,问你能不能从A数组中取出k个,B数组中取出m个,使得这k个都大于这m个. 题解 就模拟 代码 #include<iostream> #include<cstring> #include<algorithm> #define MAX_N 100005 using namespace std; int n0,n1; int k,m; int a[MAX_N…
B. Order Book time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output In this task you need to process a set of stock exchange orders and use them to create order book. An order is an instruction…
A. Arrays time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given two arrays A and B consisting of integers, sorted in non-decreasing order. Check whether it is possible to choose kn…
Problem A Arrays 思路:水一水. #include<bits/stdc++.h> using namespace std; ; int n1,n2,k,m,a[N],b[N]; int main() { scanf("%d%d",&n1,&n2); scanf("%d%d",&k,&m); ;i<=n1;i++) scanf("%d",&a[i]); ;i<=n2;i…
题意:三角形3条边,最多共添加ll长,问组成的合法三角形个数. 本来想用暴搜,觉得会超时就搜题解了.不过保证我解释得更清晰. 先计算ll长分配给3条边有几种分法?由于不分也是合法的,因此最后实际分出去的量从0-ll都有可能.for循环枚举实际分的量(记为i).对于每个x,分为m,p,q三份(每份可为0),相当于x+3分为,m+1,p+1,q+1(每份不可为0),相当于x+3长度上(中间只有x+2个间隔,选2个)切不同的两刀.因此就是循环(x+2)*(x+2-1)/(2*(2-1)); 然后计算分…