【ZJOI2017 Round1后记】】的更多相关文章

2017.4.1: NOIP+Round1综合成绩出来,标准分离续命线差了80分,果然还是联赛坑挖太大了…… 不管怎么说能续命的话还是要试一下的…… 发毒誓:Round2前不打手游,不看NGA,不看星际,不看NBA…… 能翘的课全翘…… 学考选考看天……哪个脑残想出来的JB制度 其实就算到续命线,还不是要看板的外交功力和MG,Gold_7的成绩么…… 很快的,马上就退役了 Soon As I Get Home…
题意: 思路:分块 使用树状数组维护sum[i]的前缀和 使用主席树维护root到u的路径上点的编号出现的个数 每次操作如果是修改就加入队列 如果是询问,考虑块内操作对询问的影响,每次在x点加上y会使x到root的点sum都加上y 每根号n次操作就暴力重构一次,清空队列并求出新的sum[i]的前缀和 ..]of record l,r:longint; s:int64; end; sum,bit:..]of int64; stk:..,..]of longint; head,vet,next,fa…
题意: 思路: 根据欧拉定理,a^(phi(n)-1)为a mod n的逆元 ..]of longint; s,ans,x,mo,k,phi,tmp:int64; i,m,n,j:longint; function mult(x,y:int64):int64; var tmp:int64; begin tmp:=x; mult:=; do begin = then mult:=mult*tmp mod mo; tmp:=tmp*tmp mod mo; y:=y>>; end; end; fun…
题意: 思路:这道题并没有官方题解 没有羊驼在所有三元组中出现就是NO 现在考虑不少于1只的情况 删去其中一只,我们得到了两组点和一些边 我们只要判断这是否为一张二分图,使用暴力染色的方法就有60分了 #include<cstdio> #include<algorithm> #define N 10010 #define M 50010 using namespace std; int T,n,m,edgenum,u,v,ok,isok,root; int f[N],vet[M],…
题意: 思路: 预处理出b[i]代表i位置之前比a[i]小的数的个数 以每个数为结尾的组数是线段树中(1,a[i]-1) 对于a[i]换到最后,相当于线段树中(a[i]+1,n)-- 交换后b[i]又变成了a[i]-1因为换到最后不需要考虑位置只需要考虑大小关系 ..]of record a,s,l:int64; end; a,b:..]of longint; n,m,i:longint; ans,s:int64; procedure pushdown(p:longint); var l,r:l…
题意: 100%的数据:|Ax|,|Ay|,|Bx|,|By| <= 500, 0 <= n,Ex,Ey <= 500 思路:听说这是一道原题 只能往右或者下走一步且有禁止点的简化版是CF559C 然而这道题并没有这么简单 以下开始转化: 转化后套用弱化版做法即可 ; ..]of int64; dp:..]of int64; x,y:..]of longint; ex,ey,sx,sy,ax,ay,bx,by:int64; n,n1,i,j:longint; u,v,eps:double…
题意:给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图K_{n,m},求其生成树个数 mod p. 100%的数据:1 <= n,m,p <= 10^18 思路:这是一道结论(打表找规律)+教你快速幂和乘法 题 结论为:S=n^(m-1)*m^(n-1) 需要注意的是n,m过大,普通的快速幂与乘法会炸 所以需要手写乘法,类似于快速幂的形式将其转换为加法 2017.2.28:%%%CC的证明: 设两边为X侧,Y侧 考虑它们在Prufer序列中出现的位置与取值种数 生成树的最…
喜闻乐见(爆蛋滚粗)的ZJOI模拟赛终于开始了 可以又一次感受被屠的快感 DAY1: T1:线段树打错-70 正解分块听卡常还要调块的大小 T2:数学弱爆 是道结论题 T3:暴力分滚粗 DAY2: T1:羊驼过河…… T2:数论题 当模数为合数时如何求C(n,m) T3:CDQ分治?看起来像三维偏序 DAY3: 我是谁?我在那里?我要干什么? DAY4: 我是谁?我在那里?我要干什么? DAY5: T1:杜教的题 一年半以前做过然而现在还是不会 T2:字符串题 P党暴力N^2过不了 少了30分…
题意:现在 Matej 手上有 N 个英文小写字母组成的单词, 他想知道,如果将这 N 个单词中的字母分别进行重新排列,形成的字母树的节点数最少是多少. n<=16,len[i]<=1000000 思路: 显然,如果我们希望 Trie 树的节点数尽量少,我们应该先将所有单词公共的字母拿出来,作为 Trie 树最上几层的初始链. 比如说我们有 aaab, baab 和 cab 三个单词,我们会将ab 挑出来,然后剩下的单词就变成了 aa, ab, c. 对于剩下的单词, 我们将其分成两个子集,(…
题意: 对于边带权的无向图 G = (V, E),请选择一些边, 使得1<=i<=d,i号节点和 n − i + 1 号节点可以通过选中的边连通, 最小化选中的所有边的权值和. d<=4 n<=10000 m<=10000 w[i]<=1000 思路: 求一个最小生成树(或森林),使得若干组点对各自联通由于d很小(<=4),考虑采用状压DP的做法.令1,2,..d和n,n-1...n-d+1为2d个特殊点先考虑生成树的情况:设F[i][j](i=1,2...n j…