2020年5月19日

二分图+dp——cf1354E

摘要: /* 先把点分联通块,做出二分图 二分图一侧染1,3,另一侧染2 分组背包求n2的可行方案 */ #include<bits/stdc++.h> using namespace std; #define N 5005 #define M 100005 int n,m,n1,n2,n3; vector 阅读全文

posted @ 2020-05-19 18:33 zsben 阅读(177) 评论(0) 推荐(0) 编辑

二分+bit——cf1354D

摘要: 用树状数组防止mle 求前k大用二分弄一下前缀和就行 ps:为什么我没打这场cf。。 /* 28*1000*1000b */ #include<bits/stdc++.h> using namespace std; #define N 1000006 int n; int c[N]; void ad 阅读全文

posted @ 2020-05-19 15:50 zsben 阅读(172) 评论(0) 推荐(0) 编辑

计算几何——cf1354c2

摘要: 这么清新脱俗的几何爱了 由于n必定是奇数,所以2*n正多边形一定是可以上下对半分,且上下有一个最高/低的三角形 限制正方形长度的必定是多边形左右宽度和上下高度,当这两个宽度相同时,正方形边长最小 所以二分多边形转过的角度来算即可 纯手算,推下公式就行 #include<bits/stdc++.h> 阅读全文

posted @ 2020-05-19 15:15 zsben 阅读(99) 评论(0) 推荐(0) 编辑

【模板】三分——cf1355E

摘要: 发现自己以前的三分模板有问题。。换个标准的! //整数三分 int l = 1,r = 100; while(l < r) { int lmid = l + (r - l) / 3; int rmid = r - (r - l) / 3; lans = f(lmid),rans = f(rmid); 阅读全文

posted @ 2020-05-19 13:45 zsben 阅读(158) 评论(0) 推荐(0) 编辑

模拟+分类大讨论——cf

摘要: 显然,三元组前两位确定后,第三位最多只有两种情况 答案只有111,112,121,211,122,212,221,123,132,213,231,312,321 分别讨论下存不存在就行 感觉题解的讨论方法不错,自己的写了(复制了)两百多行。。 #include <bits/stdc++.h> #de 阅读全文

posted @ 2020-05-19 12:01 zsben 阅读(173) 评论(0) 推荐(0) 编辑

【思维】复杂度均摊+并查集——icpc cerc 2019 Saba1000kg

摘要: /* 复杂度均摊: 如果M>sqrt(N),这种询问最多sqrt(N)组,直接把所有边扫一遍求联通块即可 如果M<sqrt(N),直接两两枚举点判边,复杂度M^2,总复杂度N/M*M^2=NM */ #include<bits/stdc++.h> using namespace std; #defi 阅读全文

posted @ 2020-05-19 10:39 zsben 阅读(201) 评论(0) 推荐(0) 编辑

导航