[UOJ#32][UR #2]跳蚤公路(最短路) 题面 UOJ 题解 不难发现要求的就是是否存在负环.也就是我们只需要找到所有的负的简单环,很容易就可以想到维护路径上和\(x\)相关的内容,即维护一下\(u\)到\(v\)路径上,含有\(kx\)的路径的最小的\(b\).这个可以用\(Floyd\)在\(O(n^5)\)的复杂度中求解.这样子我们用\(f[u][u][k]\)就知道了一个包含了\(u\)的,且\(x\)系数为\(k\)的最小的环,求出其负环的值域范围,接着其能够到达的所有点都会收…
[UR #2]跳蚤公路 参照yjc方法.也就是地铁环线那个题. 求每个点不在负环内的x的取值范围.然后所有1到j能到i的j的范围取交.得到答案. 每个边形如kx+b的直线,每个环也是 每个点不在负环内的x取值范围是区间, 两次二分, 第一次二分区间左端点,第二次右端点. 如果没有负环,左端点往左偏,右端点往右偏 否则,记录负环的构成:k*mid+b的k的正负,可以得到mid应该往哪里偏. 注意SPFA找负环: 记录has[x]表示到x的最短路已经经过了多少个点, dis[x]最短路,fr[x]是…
首先看这个范围很夸张但是其实有限制的也就在1e18*n范围里(走完一圈的边权),然后限制一定是有负环 用Floyd传递闭包,然后设f[i][j][k]为从1走了i步到j并且有k个x的最短路,用B-F处理,然后有负环就是kx+f[n][i][k]<jx+f[n-1][i][j] 对每个点求出x的限制 如果1到v的路径上有负环就不合法,所以用传递闭包出来的连通性把对当前v有限制的区间放到一起,求补集即可 判-1就是如果最后剩下的个数比1e18/100大就说明有一边是没限制的 #include<io…
\(\mathcal{Description}\)   Link.   给定一个 \(n\) 个点 \(m\) 条边的带权有向图,每条边还有属性 \(s\in\{-1,0,1\}\).对于每个 \(u\in[1,n]\),求有多少个 \(x\in\mathbb Z\),使得图上所有属性为 \(-1\) 的边权 \(-x\),为 \(0\) 的不变,为 \(1\) 的 \(+x\) 后,从 \(1\) 走到 \(u\) 的任意路径不经过负环.若存在无穷个 \(x\),输出 \(-1\).   \(…
[UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i)\)的和,所以我们尝试通过反演将\(x(i)\)表达成一系列\(b(i)\)的和的形式,那么就可以解出来了. 然后一个简单的化简:\(gcd(i,j)^c\cdot lcm(i,j)^d=i^d\cdot j^d\cdot gcd(i,j)c-d\). \[ \displaystyle b_i=\…
LINK:#22. UR #1 外星人 给出n个正整数数 一个初值x x要逐个对这些数字取模 问怎样排列使得最终结果最大 使结果最大的方案数又多少种? n<=1000,x<=5000. 考虑一个排列真正的有效取模只有当 \(x\geq a_i\)时才行 所以x通过一个排列真正有效的数字必然是从大到小排列的. 求第一问 不难想到将模数从大到小排列 设f[i][j]表示到达第i个模数此时值为j是否可行. 这样dp下来我们只需要取出小于minn的那个可行值最大的即可. 考虑方案数 这样dp同样有效.…
题目链接 \(Description\) 交互库中有三个排好序的,长度分别为\(n_a,n_b,n_c\)的数组\(a,b,c\).你需要求出所有元素中第\(k\)小的数.你可以调用至多\(100\)次询问某个数组中的第几个数的函数. \(n_a,n_b,n_c\leq 10^5\). \(Solution\) 显然的做法是先枚举这个数在哪个数组中,再在三个数组中二分.这个次数是\(log^2\)的. 我们如果每次确定一些数比第\(k\)个数小,那我们可以直接将这些数删掉. (可以假设数组是无限…
题意: 给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$ 变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$ 考虑一个数字从A排列到B排列连出来的路径与其他数字是否相交,相交就表示大小关系需要判断,(类似于二维偏序)用线段树维护区间最小值即可. 权值为1,2的线分别与权值为4的线相交,而且4在它们左边,所以需要判断它们的大小关系,发现${4>1}$,${4>2}$,所以满足条件. #include<iostream> #includ…
#22. [UR #1]外星人 一开始随便搞出第一问答案,很显然的性质对$x$有变化的$a$一定是递减的,就拿一个桶直接记录可以达到的值 然后我开始想第二问,一开始想直接在这个桶上统计答案,然后发现不行,之后再想,如果利用上面的性质,在选取了一个$a_i \leq x$时,会有一段区间的$a$可以随便插入到$a_i$之后,然后就被一些组合数学的细节绕晕,没有想清楚,这一段区间是$(x \mod a_i,x]$,并且要在$a_i$中挑一个出来放在最前面,然后会发现$x \mod a_i$是一个子问…
和泉纱雾与烟花大会 题目来源: UOJ 192 最强跳蚤 (只改了数据范围) 官方题解: 在这里哦~(说的很详细了 我都没啥好说的了) 题目大意: 求树上各边权乘积是完全平方数的路径数量. 这种从\(n^2\)条路径中找出满足xx条件的路径的条数的题, 我们可以根据常识判断要用到点分治. 不过这题并没有用到点分治, 这个一会再说, 我们先来看部分分. 哎呀其实这题好多部分分我都不会写(捂脸 算法1: 直接乘边权处理显然是不行哒, 怕是\(w\leq2\)怕是都要用到高精度了(什么你说\(w\le…
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.html 02:德国-德累斯顿市:http://test.sharegis.cn/mapbox/html/6germany.html 1.Mapbox设计思想 下面我们以一条路的设计为基础进行分析.本身这只是线的矢量数据,我们要对它进行丰富的渲染,大体上分为四个部分: 1.橙色的为是路的主体.对应typ…
https://www.lydsy.com/JudgeOnline/problem.php?id=4651 https://www.luogu.org/problemnew/show/P1173#sub http://uoj.ac/problem/220 跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤. 我们称占据的格子有公共边的两只跳蚤是相邻的. 我们称两只跳蚤是连通的,…
下载centos系统ISO镜像 安装linux系统和winsdows安装系统一样,需要系统文件.浏览器访问centos官网进行下载,http://www.centos.org,因为是国外网站所有下载速度受限.国内centos系统下载网站:https://www.centoschina.cn. 一般我们使用64位的系统.为啥呢? 因为用的多呗!目前绝大多数生产环境,使用的都是64位操作Centos操作系统 32位和64位系统的区别: 1.用户方面:64位操作系统的设计定位是:满足机械设计和分析.三…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ23.html 题目传送门 - UOJ#23 题意 给定一个有 n 个节点的仙人掌(可能有重边). 对于所有的 $L(1\leq L\leq n-1)$ ,求出有多少不同的从节点 1 出发的包含 L 条边的简单路径.简单路径是指不重复经过任意一点. $n\leq 10^5$ 题解 首先我们把走一条边看作多项式 $x^1$ ,那么一条长度为 L 的路径就是其路径上的多项式的乘积. 接下来称“环根”为距离节点…
题目链接:最强跳蚤 这道题本来不想写博客的--但是鉴于自己犯了低级错误,还是写篇博客记载一下. 一开始我的想法和题解里面的算法而比较类似,也是先分解质因数,然后用质因子是否出现偶数次来判断当前这个数是否是完全平方数-- 然而这样并不能AC,于是我去翻了题解--\(get\)了一个新做法,就是给每个出现过的质因子赋一个\([0,2^{64})\)的随机值,那么判断一个质因子是否出现偶数次就只需要判断异或和是否为零了.算一算可以发现冲突的概率非常小(但是我不会算). 然后--我就愉快的写了一发树分治…
题目链接 http://uoj.ac/problem/192 暑期课第二天 树上问题进阶 具体内容看笔记博客吧 题意 n个节点的树T 边有边权w 求满足(u, v)上所有边权乘积为完全平方数的路径有多少条 看到“所有边权乘积为完全平方数” 想到完全平方数的特殊性 就是分解质因数后 质因数指数都为偶数 然后就想到分解边权质因数+判质路径边权奇偶性 后者由于奇数偶数的和的规律 可以使用抑或 偶就表示为0 奇就表示为一 那么如何存储呢? 状压? 空间之大 状压压不下 所以hash 对每一个要用的质数…
题目描述 给定一棵 $n$ 个点的树,边有边权.求简单路径上的边的乘积为完全平方数的点对 $(x,y)\ ,\ x\ne y$ 的数目. 题解 Hash 一个数是完全平方数,当且仅当每个质因子出现次数都是偶数. 因此给每一个质因子赋一个随机权值,一个数的权值等于它所有出现次数为奇数的质因子权值的异或.那么边权乘积的权值就是边权权值的异或.问题转化为求有多少条路径异或值为0. 显然, $x$ 到 $y$ 异或和为0,等价于 $x$ 到根和 $y$ 到根异或和为0.因此求出一个点到根节点的路径的权值…
(开头先Orz myh) 原题目: 在人类和跳蚤的战争初期,人们凭借着地理优势占据了上风——即使是最强壮的跳蚤,也无法一下越过那一堵坚固的城墙. 在经历了惨痛的牺牲后,跳蚤国王意识到再这样下去,跳蚤国必败无疑.然而为了震慑跳蚤国的老冤家——猴族,跳蚤国那世界上最跳的坦克只能留在跳蚤国本土,无法派上用场. 于是跳蚤国王决定利用跳蚤国最尖端的技术,创造出最强的跳蚤来挽回败局. 为了避免这样的低级失误,跳蚤国王决定使用机器来帮助他创造跳蚤.他把它拥有的 n 种属性放在了 n 个容器中,然后他使用了n−…
[UOJ#51][UR #4]元旦三侠的游戏(博弈论) 题面 UOJ 题解 考虑暴力,\(sg[a][b]\)记录\(sg\)函数值,显然可以从\(sg[a+1][b]\)和\(sg[a][b+1]\)推过来. 发现可以从\(sg[a][b]\)推到\(sg[a][b+1]\)的值很少,所以可以直接把这些值全部提前计算出来,这部分大概有\(\sqrt n\)个,剩下的可以推到\(sg[a+1][b]\)而不能推到\(sg[a][b+1]\)的位置可以通过\(a\)以及最大的满足\(x^b\le…
#33. [UR #2]树上GCD 有一棵$n$个结点的有根树$T$.结点编号为$1…n$,其中根结点为$1$. 树上每条边的长度为$1$.我们用$d(x,y)$表示结点$x,y$在树上的距离,$LCA(x,y)$表示$x,y$的最近公共祖先(即树中最深的既是$v$的祖先也是$u$的祖先的结点). 对于两个结点$u,v(u≠v)(u≠v)$,令$a=LCA(u,v)$,定义$f(u,v)=gcd(d(u,a),d(v,a))$. 其中$gcd(x,y)$表示$x,y$的最大公约数,特别地,$gc…
[UOJ#12][UER #1]猜数 试题描述 这一天,小Y.小D.小C正在愉快地玩耍. 小Y是个数学家,他一拍脑袋冒出了一个神奇的完全平方数 n. 小D是个机灵鬼,很快从小Y嘴里套出了 n的值.然后在脑内把 n写成了 a×b的形式.其中 a,b 都是正整数. 小C是个八卦狂,他发现小D从小Y那里获知了神奇的东西,于是死缠烂打追问小D.最后小D说道:“我可以告诉你正整数 g和 l的值,我保证 ab=gl=n且 a,b都是 g 的倍数.但是 a,b 我可不能告诉你.” 这可急坏了小C.他决定退而求…
#118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description 高中,高中,短暂的三年.NOI是高中结业考试,而高考在每年暑假举行. 高二暑假,这是你最后一次参加高考的机会.你已经为了高考停课很久了,OI的知识很久没管了.你并没有能力用一年时间补起别人三年的OI课程.这是你的最后一战,如果你失败了,可能就不能工地搬砖只能去清华了. 这天你背上行囊赴京赶考.此时…
#31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Description 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫_CallMeGGBond. 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领域的兴趣:尤其是括号序列理论,一度令我沉浸其中,无法自拔.至于OI算法竞赛,我年轻时确有参加,虽仅获一枚铜牌,但我素性淡泊,毫不在意,毕竟那所谓FFT.仙人掌之类…
UOJ 241. [UR #16]破坏发射台 题意:长度为 n 的环,每个点染色,有 m 种颜色,要求相邻相对不能同色,求方案数.(定义两个点相对为去掉这两个点后环能被分成相同大小的两段) 只想到一个奇怪的线性递推,无法写成矩乘的形式... 正解用状态记录了颜色是否相同 奇环,只考虑相邻,确定第一个的颜色,\(f[i][0/1]\)表示i个与第一个不同/同色的方案数 偶环,再考虑相对,分成两段,同时递推\(i,\frac{n}{2}+i\),\(f[i][0..6]\)来表示 构造矩阵讨论好烦啊…
[UOJ#50][UR #3]链式反应(分治FFT,动态规划) 题面 UOJ 题解 首先把题目意思捋一捋,大概就是有\(n\)个节点的一棵树,父亲的编号大于儿子. 满足一个点的儿子有\(2+c\)个,其中\(c\in A\),且\(c\)个儿子是叶子,另外\(2\)个存在子树,且两种点的链接的边是不同的,求方案数. 那么就考虑一个暴力\(dp\),设\(f[i]\)表示有\(i\)个节点的树的个数. 那么枚举它两个有子树的子树大小,然后把编号给取出来,得到: \[f[i]=\frac{1}{2}…
[UOJ#242][UR#16]破坏蛋糕(计算几何) 题面 UOJ 题解 为了方便,我们假定最后一条直线是从上往下穿过来的,比如说把它当成坐标系的\(y\)轴. 于是我们可以处理出所有交点,然后把它们从上往下排序. 相邻的两个点就构成了一个相交的平面(可以认为正无穷和负无穷位置还有一个点) 那么,这个区间是有限的,当且仅当过这个两点的直线在左侧都还能找到一个交点,在右侧也还能找到一个交点. 于是考虑怎么找交点,两侧基本等价,所以拆开考虑,比如考虑右侧. 我们从上往下依次扫每一个过每一个交点的直线…
[UOJ#82][UR #7]水题生成器(贪心) 题面 UOJ 题解 把\(n!\)的所有约数搜出来,这个个数不会很多. 然后从大往小能选则选就好了. #include<iostream> #include<cstdio> #include<algorithm> #include<vector> using namespace std; #define ll long long int n;ll m; vector<ll> ys; int p[2…
[UOJ#76][UR #6]懒癌(动态规划) 题面 UOJ 题解 神....神仙题. 先考虑如果是完全图怎么做... 因为是完全图,所以是对称的,所以我们只考虑一个有懒癌的人的心路历程. 如果只有一只狗有懒癌:第一天,看了看,似乎其他的狗都没有,但是村子里至少有一只狗有,然后就确定了. 如果有两只狗:第一天,看了看,有一只别的狗有懒癌,不确定:第二天,昨天有懒癌的那只狗还活着,证明他不能确定,所以他还看到了别的狗有懒癌,而除了自己的未知和那个有懒癌的人,别的人的狗都没有懒癌,所以自己的狗有懒癌…
[UOJ#75][UR #6]智商锁(矩阵树定理,随机) 题面 UOJ 题解 这种题我哪里做得来啊[惊恐],,, 题解做法:随机\(1000\)个点数为\(12\)的无向图,矩阵树定理算出它的生成树个数,然后找到四张图不拼接直接放在一起,也就是找到四个图,假设其生成树个数是\(f(G)\),那么就找到\(f(G_1)f(G_2)f(G_3)f(G_4)\equiv k\),然后预处理两两的乘积,丢到哈希表/\(\text{map}\)里,枚举另外一半直接查... 无向图的生成方式是每条边出现的概…
[UOJ#74][UR #6]破解密码 题面 UOJ 题解 发现这个过程是一个字符串哈希的过程. 把第一位单独拿出来考虑,假设这个串是\(p+S\),旋转后变成了\(S+p\). 其哈希值分别是:\(p*26^{|S|}+hash(S)\)和\(hash(S)*26+p\). 那么\(h[i]*26-h[i+1]=p*26^{n}-p\) 那么这里显然可以直接把\(p\)给解出来. 这样子就可以还原出每一位了. 注意到特殊情况:\(26^n-1\)没有逆,此时无法直接计算. 然而注意到\(26^…