喜闻乐见(爆蛋滚粗)的ZJOI模拟赛终于开始了 可以又一次感受被屠的快感 DAY1: T1:线段树打错-70 正解分块听卡常还要调块的大小 T2:数学弱爆 是道结论题 T3:暴力分滚粗 DAY2: T1:羊驼过河…… T2:数论题 当模数为合数时如何求C(n,m) T3:CDQ分治?看起来像三维偏序 DAY3: 我是谁?我在那里?我要干什么? DAY4: 我是谁?我在那里?我要干什么? DAY5: T1:杜教的题 一年半以前做过然而现在还是不会 T2:字符串题 P党暴力N^2过不了 少了30分…
题意: n<=1000 m<=10000 思路:…
2017.4.1: NOIP+Round1综合成绩出来,标准分离续命线差了80分,果然还是联赛坑挖太大了…… 不管怎么说能续命的话还是要试一下的…… 发毒誓:Round2前不打手游,不看NGA,不看星际,不看NBA…… 能翘的课全翘…… 学考选考看天……哪个脑残想出来的JB制度 其实就算到续命线,还不是要看板的外交功力和MG,Gold_7的成绩么…… 很快的,马上就退役了 Soon As I Get Home…
题目链接 随机化 暴力: 随便从一个点开始DFS,每次从之前得到的f[i]最大的子节点开始DFS.f[i]为从i开始(之前)能得到的最大答案. 要注意的是f[i]应当有机会从更小的答案更新, 9.10求直径. 就82分了. 本来想的SPFA啥的也不对..正解思路是这的. #include <ctime> #include <cstdio> #include <cctype> #include <vector> #include <cstring>…
题意: 思路:分块 使用树状数组维护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序列中出现的位置与取值种数 生成树的最…