
51NOD
文章平均质量分 71
orz11111111
这个作者很懒,什么都没留下…
展开
-
51NOD 最复杂的数 暴力(反素数)
题意:把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。n反素数定义:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0性质:性质一:一个反素数的质因子原创 2017-11-16 20:33:33 · 244 阅读 · 0 评论 -
51nod 80 破坏道路 思维,图论
题意:n点m条边的无向联通图.给出(s1,t1,l1),(s2,t2,l2)1<=n<=3000. n-1<=m<=min(3000,n*(n-1)/2). 问最多删除多少条边,使得s1到t1长度不超过l1,s2到t2长度不超过l2.边最多只有3000条.删除边最多,保留的边尽量少.假如p1,p2为(s1,t1),(s2,t2)的路径 并且长度都符合要求.则保留的边个数为 ...原创 2018-07-06 15:03:29 · 257 阅读 · 0 评论 -
51nod 40 完全图 DP
题意:n点m条边的完全图,问有多少种删除边的方案使得正好有m个联通块. n,m<=500.设dp[i][j] i个点有j个联通块的方案数. 按照最后一个联通块的大小进行转移.dp[i][j]=C(i-1,k-1)*dp[k][1] * dp[i-k][j-1].[k=1..i].k==1时 总共方案为2^(i*(i-1)/2) 减去 dp[i][2:i]的方案即可.#include <...原创 2018-07-11 10:07:14 · 149 阅读 · 0 评论 -
51nod 80 路径定向 欧拉路径
题意:n点m条边的有向图,操作:改变某条边(u,v)的方向.n<=1e5,m<=3e5. 可以操作任意次.问入度等于出度的点最多有多少个,并输出改变边的方案.先把边看成没有方向的,那么如果一个点的度数为奇数,则它的入度不可能等于出度.那么在奇数点之间连边不会对任意一个方案造成影响.因为奇数点的个数为偶数个.两两连边后,所有点都为偶数度,跑一遍欧拉路径时,保存边的方向即可.O(E).#i...原创 2018-07-09 13:56:49 · 182 阅读 · 0 评论 -
51nod 40 區間的價值V2 位運算+枚舉
题意:定义一个区间的价值为:这个区间内的数AND的值 * 这个区间的数OR运算的值.n固定L,增加R,与运算的结果非递增,或运算的结果非递减.并且最多变化log(max(a[i]))=32次.方便模拟 用vector d[j]记录二进制第j位为1的下标, 找a[i]的变化值 只要枚举j之后,在d[j]二分第一个比i大的下标即可.以i为左端点 分别求出两个运算变化的右端点模拟原创 2018-04-28 00:09:57 · 136 阅读 · 0 评论 -
51nod 40 Bash游戏 博弈,打表
Bash 游戏4题.题意:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。n,k假如N%(k+1)!=0 先手必胜 因为每次可以把可以把余数变为0 下因为最多取k个,下一个人无论怎么操作余数都不会为0,先手每次取完都为r==0的状态.经过若干次操作后.石子被先手取完,先手必胜.#include using name原创 2017-12-28 19:30:33 · 298 阅读 · 0 评论 -
51nod 40 斜率小于0的连线数量 树状数组
题意:二维平面上n个点,问任意选两个点,其斜率小于0有多少种方案?n按照X坐标排序 离散化后,对于(a[i],b[i])找到前面有多少个b[j]>b[i]的点b[j]>b[i] 则前面有i-1个点 减去b[j]然后WA... 没有考虑横坐标相同的情况 比如 (2,9),(2,4) 这一对不应该被统计.令cur为当前更新到的下标 若b[cur]!=b[i] 则更新原创 2018-01-03 13:15:38 · 212 阅读 · 0 评论 -
51nod 40 两条不相交的路径 Tarjan无向图求环
题意:n点m条边的无向图,Q次询问 每次询问(u,v) 问u-v之间是否存在两条不相交的路径.n,Q若(u,v)存在两条不相交的路径,(u,v)显然在同一个环上面.Tarjan找环即可.#include using namespace std;const int N=2e5+5;vector e[N];int n,m,Q,u,v,fa[N];int cnt=0,i原创 2018-01-02 19:11:50 · 460 阅读 · 0 评论 -
51nod 40 第K大区间 二分+尺取
题意:定义一个区间的价值为:该区间众数的出现次数 (该区间相同的数最多出现多少次.)给出序列a,将所有区间价值排序后,问第k大的数值为多少?n设cnt[x] 价值为x的区间有多少个? x[1...n] . 如何快速算出cnt[x]???? 想了一会儿 只会暴力算.qwq...设f[x]:价值因为答案是在[1,n]范围内的,令tot=(1+n)*n/2,k=t原创 2017-12-26 16:14:19 · 234 阅读 · 0 评论 -
51nod 40 选择子序列 单调栈+DP
题意:长度为n的序列a.每个数都不相同. 找到一个序列b 0 A[b[1]]> ...A[b[k]]. 并且:A[j]na[b[i]]要大于(a[b[i]]~a[b[i-1]])之间的数. 选下一个数,可以在上一个数的左右两边 而且不知道要选哪一个 不好处理.先保存每个数的下标 然后将序列按照权值从大到小排序.设dp[i]为以排序后下标i结尾 选出最原创 2017-12-30 20:02:54 · 236 阅读 · 0 评论 -
51nod 40 序列分解 暴力dfs or 折半+字典树
题意:长度为n的序列a,从a中选出两个长度为n/2的子序列b,c.a中每个元素要么属于b要么属于c.2初始序列b,c都为空 假如a[1]属于序列b. 那么下一个x=a[1]的数可能属于序列c 中间的数肯定都压入序列b中若序列b长度大于n/2,无解. 141 7 10 1 7 4 5 7 1 10 7 4 5 1WAWAWA... 按上面算法来执行则无解 实际上有{1原创 2017-12-25 13:48:01 · 216 阅读 · 0 评论 -
51nod 80 路径计数 容斥+建图
题意:n点m条边的有向无环图,定义一条路径的价值为:该路径上所有边权的最大公约数.n,w<=100,Q<=500,m<=5e4.Q次操作:修改一条边的权值,并询问价值为1的路径数量?因为边权最大为100.可以拆成100个子图.第x个子图的路径值只能为x的倍数.设g[i]为第i个子图的路径个数.容易容斥算出f[i],价值为i的路径总个数因为为DAG,dp[u][x]以u为起点的价值...原创 2018-07-15 22:57:54 · 179 阅读 · 0 评论