2016长乐夏令营
CRZbulabula
苟蒻还是学生党哦。。
展开
-
2016长乐夏令营Day1
T1:裸模拟一发,枚举k还原密码即可#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1E6 + 10;typedef double DB;const DB eps = 1E-10;DB s = 1E18原创 2016-07-11 16:16:31 · 623 阅读 · 0 评论 -
2016长乐夏令营 Day8
T1:把所有边从大到小排序,for一遍,对于每个点i开一个bitset,如果扫描到一条边(i,j) 那么bitset[j][i] = bitset[i][j] = 1如果bitset[i] & bitset[j] > 0 那么说明i,j已经通过一个点k相连,即当前这条边就是答案题目貌似并不考虑三点共线,也就是说貌似三点共线也算三角形(不用特判的程序都能过)#include#原创 2016-07-18 16:49:28 · 542 阅读 · 0 评论 -
2016长乐夏令营 Day7
T1:找个规律排序一发+树状数组一发O(nlog^2n)#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 2E5 + 20;typedef long long LL;struct Day{ in原创 2016-07-18 16:26:27 · 443 阅读 · 0 评论 -
2016长乐夏令营 Day3
T1: 模拟。。模拟。。模拟。。GG,没有考虑到,文件在根目录的情况#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 3E4 + 10;char check[30]原创 2016-07-12 20:00:01 · 573 阅读 · 0 评论 -
2016长乐夏令营 Day14
T1:f[i]:用状态为i的数字构成小于等于n的数字的方案数g[i]:用状态为i的数字构成的合法好集的方案数f[i]:就算N = 1E9,总的合法的数字也就500W,枚举一发g[o] = ∑f[op]*g[o - op]强制op含有o最左边的1#include#include#include#include#include#include#include#incl原创 2016-07-27 23:30:25 · 431 阅读 · 0 评论 -
2016长乐夏令营 Day13
T1:如果x >= y 那么答案显然(n-1)*y 不过要特判菊花图如果x f[i][k]代表以i为根的子树,i连边的状态为k,选的最多的边的数量k 转移显然#include#include#include#include#include#include#include#include#include#includeusing namespace std;原创 2016-07-27 23:22:56 · 399 阅读 · 0 评论 -
2016长乐夏令营 Day12
T1:f[i][j]:吃掉的黑子状态为i,当前在第j个棋子的位置上,走的最小步数因为棋盘是不断更新的,所以每个状态要更新后续状态的时候要一遍BFS#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int原创 2016-07-27 20:53:53 · 454 阅读 · 0 评论 -
2016长乐夏令营 Day11
T1:惨。。当场没读懂题意?最小割就是选出权值和最小的边集,使得删去它们后图不联通题目硬性规定要从一棵树内选出有且仅有一条边假如说题中的图仅仅是一棵树,那么随意割掉一条边就好现在以这棵树的视角来看割去一条边后,处理掉联通边两端的联通块的返祖边显然最优(不然你割这条树边干嘛?)嗯,,至于返祖边的数量,树上前缀和搞定#include#include#include#i原创 2016-07-27 20:04:13 · 532 阅读 · 0 评论 -
2016长乐夏令营 Day10
T1:f[i][j]:将每个数字转换为二进制数码后前八位为i的数中与后八位为j的数中的后八位数码opt操作后的最大值。对于每个位置pos查询与更新都是根号65536的#include#include#include#include#include#include#include#include#include#includeusing namespace std;con原创 2016-07-26 22:20:21 · 519 阅读 · 0 评论 -
2016长乐夏令营 Day6
T1:远古农场数小于等于10,意味着我们可以枚举远古农场的选择方案,这样原图中的所有点就被分为一定不能新建农场的点和可能可以新建农场的点。为了让新建的农场数量最大,农场显然是1*1最好,然后农场不能相邻,于是将可能可以建农场的点染成黑白两色(第一发代码在这里停止,直接贪心,居然过6个点。。强),就成了二分图,需要在里面找出一个最大独立子集,总点数-最大匹配就是了(Dicnic)又炸一波#i原创 2016-07-15 19:58:36 · 495 阅读 · 0 评论 -
2016长乐夏令营 Day5
T1:f[i]为从i点开始到终点的最大边数期望考虑不删边时 f[i] = ∑(f[j]+1)/tot j为i点的后继,tot为总边数令b[j] = f[j]+1 a[j] = 0,1 表示是否选择第j条边于是f[i] = ∑(b[j]*a[j])/∑a[j] = ans (01分数规划)二分ans,移项得 ∑a[j]*(b[j]-ans) > 0 也就是说,左式大于零时,原创 2016-07-15 19:38:56 · 954 阅读 · 0 评论 -
2016长乐夏令营 Day4
T1:模拟。。开一排const char#include#include#include#include#include#include#include#include#includeusing namespace std;const char n0[5][3] = {' ','-',' ','|',' ','|',' ',' ',' ','|',' ','|',' ',原创 2016-07-13 16:22:26 · 467 阅读 · 0 评论 -
2016长乐夏令营Day2
T1:反正要用sliding windows~,至于数字的处理一开始用离散化,但是长乐的老爷机死都不让我过nlogn最后Hash一发总算A了#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1E原创 2016-07-11 16:37:29 · 616 阅读 · 0 评论 -
2016长乐夏令营 Day9
T1:带权并查集。每个约束看做一条x连向y的边,边权为x+y = c对于一个x,可能有多个y与他有关系,间接可以算出y与y’的关系,那么边权就记为y - y'每次加入条件,就看看是否冲突细节详见代码据说正解是差分约束??苟蒻是真不会。。#include#include#includeusing namespace std;const int maxn = 1E3 +原创 2016-07-18 21:48:17 · 489 阅读 · 0 评论