main
文章平均质量分 86
蜗角虚名羊
这个作者很懒,什么都没留下…
展开
-
51nod 1470 计算机网络问题
题目 题解 Solution 一个边双连通分量一定可以找到一个不走重复边的环 这个的话用两个之间一定存在至少两条没有公共边的路径可以得证 所以双连通分量的所有点是可以随便两两到达的 于是我们可以先来一发双连通缩点 然后就变成了一个树 差分一下 Code #include<bits/stdc++.h> using namespace std; const int N=200001; st...转载 2018-10-24 15:05:23 · 207 阅读 · 0 评论 -
bzoj1078: [SCOI2008]斜堆
题目 题解 考虑斜堆中最后插入的那个结点,容易发现: (1)它一定是一个极左结点(就是从根往它的路上一直都是沿着左链走),因为插入的时候每次都是插入到左子树中; (2)它一定木有右子树,因为插入的时候每次都是把原来的某棵子树作为新结点的左子树; 满足(1)(2)的结点可能有多个,但紧接着可以发现,这个斜堆中的每个结点如果木有左子结点,那么也木有右子结点(或者说,每个非叶结点都有左子树),而在插入...转载 2018-12-11 09:33:45 · 223 阅读 · 0 评论 -
51nod1440 迈克打电话
题目 和阿狸的打字机很像,差不多的套路 #include&lt;bits/stdc++.h&gt; using namespace std; #define mid ((l+r)&gt;&gt;1) const int N=200002,M=4000002; struct node{ int to,ne; }e[N]; int l1[N],r1[N],l[N],r[N],tr[N][26],su...原创 2018-12-20 11:13:34 · 212 阅读 · 0 评论 -
神奇的题
洛谷IDE上一份代码把某些句子删掉测一下,再加回来,会使output改变 #include<bits/stdc++.h> using namespace std; long long ans=0,t=0; char s[1001]; int main() { // scanf("%s",s); gets(s); // cin>>ans; int l=strle...原创 2018-12-02 20:28:27 · 206 阅读 · 0 评论 -
绍兴一中模拟赛11.2——Alice的幸运数
原题 Solution 引理1:当n&gt;6n&gt;6n>6时全用andandand能使最小值为000 111个andandand能使111的个数减半,而111个数最多323232个111,所以666个数能使111的个数为000 引理2:xorxorxor操作能被andandand操作代替 0^0=0;0&~0=0 0^1=1;0&~1=0 1^0=1;1...原创 2018-11-02 17:46:05 · 393 阅读 · 0 评论 -
POJ1177 Picture
题目 思路来自http://blog.csdn.net/littlewhite520/article/details/78091093 题意: 给n个矩形,求它们重叠后的周长 题解: 用线段树的扫描线从下到上扫一遍,与面积并思想有些相似面积并,下面重边的处理相似,但是周长的并需要求的是竖边的个数然后乘以高度,而面积并求的是底边的长乘以高度,这里我们用了区间合并时的l和r 结构体k...原创 2018-03-22 18:41:26 · 331 阅读 · 0 评论 -
bzoj4242: 水壶
题目 题解 Solution 很明显的一点,这道题目就是要在网格图上面计算一个最小生成树,然后就变成了货车运输一样的做法,可以倍增或者是克鲁斯卡尔重构树。 后面的部分就是原题,所以不再考虑,只考虑怎么样构造网格图最小生成树。 我们对于每一个可行的起点一起bfsbfsbfs,对于每一个格子记录两个东西:一个记录距离当前位置最近的建筑的距离,以及是哪一个建筑。 当你bfsbfs到某个格子的时候,发现这...转载 2018-11-01 17:15:41 · 219 阅读 · 0 评论 -
bzoj3174: [Tjoi2013]拯救小矮人
题目 题解 Solution 考虑相邻的a和b 若a.a+a.b<b.a+b.b则b应该在a之后逃跑 大概这样理解 就是如果只能通过一个,那么我无论怎么放都一样(后面是dp) 如果可能通过俩,那么显然要把逃跑能力强的放在后面 然后dp一下 f[i]表示逃跑i个人后剩下的人梯最高的高度 Code #include<bits/stdc++.h> using namespace std...转载 2018-11-01 08:15:15 · 190 阅读 · 0 评论 -
绍兴一中模拟赛10.20&10.27——tree1.0&2.0
Tree1.0 Description 选择起始点和终点以后,会每次等概率随机走到一个相邻的点(不能来回走同一条边多次),问最后走到终点的期望步数 Solution 统计下子树内和子树外的点分别作为起点和终点的贡献即可 Code #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=...原创 2018-10-27 22:22:36 · 154 阅读 · 0 评论 -
绍兴一中模拟赛10.30——序列
题意:给出一个长度为n(n&lt;=100000)n(n&lt;=100000)n(n<=100000)的序列,有m(m&lt;=5)m(m&lt;=5)m(m<=5)次询问,每次询问有多少个长度∈[l2,r2]∈[l2,r2]∈[l2,r2]的区间,中位数大小∈[l1,r1]∈[l1,r1]∈[l1,r1] Solution O(nmlogn)O(nm...原创 2018-10-30 16:47:10 · 193 阅读 · 0 评论 -
AT2377 Blue and Red Tree
题目 题解 Solution 首先可以发现最终状态替换的红边和蓝边一定是重边。把这条边两端的联通块看成一个点。 往回推,要形成这两个点,必须也要有类似的重边 这样就可以得到一种做法。每次把重边两端的放入队列,并把边集合并(启发式合并),把这两个联通块合并 再把重边放入,直至更新完成 Code #include<bits/stdc++.h> using namespace std; #d...转载 2018-10-30 12:29:44 · 185 阅读 · 0 评论 -
绍兴一中模拟赛10.31——世界杯
题意:nnn个球队,每个球队有kkk个属性(属性值各不相同),aaa能胜bbb当且仅当aaa有至少一个属性大于bbb,求对于每个iii,前iii个球队中可能能获得冠军的球队个数 Solution 如果把aaa胜bbb当作aaa向bbb连一条有向边,缩点后,可以得到一条链,缩点后如果aaa向bbb连一条边,则说明aaa中每个属性最小值均大于bbb中对应最大值,每加入一个数,就合并一次 Code #i...原创 2018-10-31 15:19:45 · 169 阅读 · 0 评论 -
洛谷P2024 [NOI2001]食物链
题目 种类并查集 #include&lt;bits/stdc++.h&gt; using namespace std; int op,x,y,n,m,i,v[150003],ans; int find(int x){ return v[x]==x?x:v[x]=find(v[x]); } int main(){ cin&gt;&gt;n&gt;&gt;m; for (i=1...原创 2018-12-11 14:26:00 · 160 阅读 · 1 评论