CF #327 DIV2 D、E】的更多相关文章

两题都不难. 对于D题,可以使用相对移动,把吹aircraft移动变成相反方向的待援点的移动.假设此时时间为t,把aircraft的速度设为Vmax,看待援点在飞船最大速度飞行t秒的范围内,注意风向变化的时间点即可.其实很明显的二分.. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int x1,y1,x2,…
cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i,j)满足l <= i <= j <= r 且 sum[j] - sum[i-1] = k\) 思路: 区间左右端点的挪动对答案的贡献符合加减性质,直接用莫队算法即可 复杂度\(O(n * sqrt(n) * log(maxsum))\) 过高 考虑先离散化预处理出所有位置 将\(log\)去…
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #include<set> #include<map> using namespace std; #define M…
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到y 分析: 对于输入的图中,可以发现每个连通块是独立的,中间不用连边就可以,于是考虑单个连通块. 如果某个连通块一共有m个点,那么我们知道,我们至少是要加m-1条边才可以保证形成的图是连通的,但是因为是有向边,所以最后形成的图一定是DAG图,这也就意味着这必须要求对于这个连通块,原图也是DAG图,即…
A.Cakeminator 暴搞之,从没有草莓覆盖的行.列遍历 char map[30][30]; int vis[30][30]; int hang[30],lie[30]; int main() { int n,m,i,j; cin >> n >> m; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cin >> map[i][j]; if(map[i][j] == 'S') { hang[i] = 1; lie…
本来应该认真做这场的.思路都是正确的. C题,是先该横切完或竖切完,无法满足刀数要求.再考虑横切+竖切(竖切+横切), 由于横切+竖切(或竖切+横切)会对分割的东西产生交叉份数.从而最小的部分不会尽可能的大. 代码例如以下.尽管比較长.比較乱,但全然能够压缩到几行,由于差点儿是4小块反复的代码,自己也懒得压缩 注意一点,比方要推断最小块的时候,比方9行要分成2份,最小的剩下那份不是9取模2,而应该是4 m/(k+1)<=m-m/(k+1)*k          #include<bits/st…
CodeForces 591A 题意:在距离为L的两端A,B,相向发射魔法,a(以P1的速度)-->B,A<--b(以P2的速度).假设a-->B,途中相遇,则返回到原点A<--a. 后又继续,a-->B,速度不变. b亦是如此.求第二次相遇时a的位移. 思路:因为速度不变,所以第二次相遇地点与第一次相遇地点一样. res= n/(Va+Vb)*Va 代码: #include <iostream> #include <cstdio> #include…
差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一看被hack了. C Everyone is a Winner! 除数是斐波那契数列,好像不行?二分.. D Secret Passwords 待补 E Editor 待补 F Economic Difficulties 待补…
LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了一下就没了. 但是到E就只剩下30min(都怪A B浪费我过多时间. 观察题目中给的一个程序 其维护了一个大根堆且这个程序意思是一个函数 这个函数是指对于这个大根堆上的一个非空节点来说每次会将这个值给删掉继承最大的儿子值 然后递归值最大的儿子值得某个节点没有一个非空儿子(那么这个点的值被删掉为0.…
线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i<<1|1 #define MAX 140000 #define ll __int64 using namespace std; ll a[MAX],s; struct tree { int l,r; ll res; bool flag; }T[*MAX]; //奇数OR,偶数XOR void b…