自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 【51nod1103】【N的倍数】【构造】

题目大意一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数解题思路发现对a左前缀和,会产生n+1个数,模n最多有n个取值,所以一定有两个相同,就对应一段可行区间。code#include<cmath>#include<cstdio>#include<algorit

2016-11-30 22:34:28 333

原创 【51nod1076】【2条不相交的路径】【图论】【边双连通分量】

题目大意给出一个无向图G的顶点V和边E。进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径。(两条路径不经过相同的边)解题思路求边双连通分量,在同一个分量中的点输出yes,否则输出no。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define min(

2016-11-30 17:23:36 1189

原创 【51nod1060】【最复杂的数】【数论】【反素数】【搜索】【结论】

题目大意把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。解题思路额……这个是求小于n的最大反素数(一脸懵逼)。对于任何正整数x,其约数的个数记做g(x)。如果某个正整数x满足:对于任意i(0<i<x)i(0<i<x),都有g(i)<g(x)g(i)<

2016-11-29 16:57:41 418

原创 【51nod1051】【最大子矩阵和】【动态规划】

题目大意一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -1 2 -1 3 -3 1 2和最大的子矩阵是:3 -1 -1 3 1 2解题思路枚举左右边界,可以把中间的数压成一维,在从前往后扫,如果之前的最大和大于0,那肯定连上之前的数,否则则以当前数为起点肯定更优,复杂度就是n^3.code#include<cstd

2016-11-28 14:39:59 385

原创 【jzoj4908】【NOIP2016提高组】【愤怒的小鸟】【状态压缩动态规划】

题目大意解题思路由于点的个数很少可以状态压缩,我们可以找到第一个没有覆盖的点,再随便枚举一个点(记得打break),两个点就可以确定一条抛物线,再扫一遍就可以知道有哪些点被覆盖,这个复杂度可以接受。code#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#define LD double#define L

2016-11-27 17:59:16 1145

原创 【jzoj4907】【NOIP2016提高组】【蚯蚓】【单调队列】

题目大意解题思路可以发现先分裂的不会比后分裂的短,应为本来就比后来的长,一样会长长同样的q,所以没有影响。这样我们就可以开三个队列,分别存原来的数,拆出来的两个数,这样就可以轻松排序。还有可以记录分裂出来的时间,就可以在分裂的时候求出真实的长度。code#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#inc

2016-11-27 17:45:58 350

原创 【jzoj4906】【NOIP2016提高组】【†组合数问题】【数论】

题目大意解题思路可以用杨辉三角求解组合数,再用前缀和求解答案。因为我比较蠢,所以我就分解质因数,但是实际上只要对k取模就可以了。code#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#define LD double#define LL long long#define max(x,y) ((x>y)

2016-11-27 17:34:05 441

原创 【jzoj4905】【NOIP2016提高组】【†换教室】【动态规划】【期望】

题目大意解题思路先跑一次Floyd求出两点之间的距离,f[i][0,1]为第i个点申不申请到终点的期望,由于期望的线性性,和的期望等于期望和,所以可以很容易求出相邻两个点申不申请的期望,直接dp即可,具体可以看一下代码。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LD doubl

2016-11-27 17:24:36 390

原创 【jzoj4904】【NOIP2016提高组】【天天爱跑步】【数据结构】

题目大意解题思路把无根树转换成有根树,把一条路径拆成两条路径。考虑上行的部分,能贡献的点时间差等于距离差,通过移项只与点有关,可以在起点打一个+1标记,在lca打上一个-1标记,贡献数为子树和,下行的情况类似处理。用dfs序标记后可以转换成区间和,可以把区间和转换成前缀和,把询问拆成两个,进入点时减去之前的贡献,离开前加入贡献。因为是单点修改单点查询,所以可以用桶实现。code#include<cm

2016-11-27 17:07:38 715

原创 有用的连接

杨乐经验 王之栋经验

2016-11-17 21:54:44 204

原创 【noip2016集训总结】

概述这三个星期的停课,做了不少模拟赛,暴露了不少问题,状态也有一些调整,总的来说还是有不少收获。问题还是一些细节吧,数组开得不够大,调试对拍时对代码的修改没有及时还原,时间太紧暴力打错。其实归根结底还是水平的问题,整场把握得不够好,代码的准确性不够,导致浪费了很多时间在调试和对拍上面,使得时间变紧。有时还是太急,太想拿高分,出现问题时太急对发挥还是有些影响。解决方案还是要有自己做题的节奏,适合自己的

2016-11-17 17:01:13 389

原创 【jzoj4897】【人生的意义】【拓扑排序】【找环】

题目大意这个新世界由N个城市组成(编号为1..N),其中第i个城市的意义大小为W[i]。每个城市都有一个唯一的后继城市a[i]。设NiroBC最初降落在城市x,那么她将按照x -> a[x] -> a[a[x]] -> a[a[a[x]]] -> …的路径行走,同一个城市的人生意义只能得到一次,NiroBC最终得到的人生意义是所有经过的城市(不重复)的人生意义的和。 NiroBC是等概率地随机地降落

2016-11-17 08:17:57 553

原创 【jzoj4898】【人生的价值】【扫描线】【线段树】

题目大意YYHS的校园可以抽象成一个无限二维平面,校园里分布着N个教室(编号为1..N),第i个教室的坐标为(x[i], y[i]),里面有w[i]个学生。新食堂的饭菜十分美味,然而同学们都比较懒。当且仅当新食堂的位置和第i个教室的位置的曼哈顿距离小于等于L,第i个教室里的学生会去新食堂吃饭。有博爱之心的NiroBC希望有尽量多的学生去新食堂吃饭,那么这个问题就交给你了!解题思路通过观察可以发现,有

2016-11-17 08:12:20 494

原创 【jzoj4833】【Mahjong】【搜索】

题目大意解题思路暴力,先考虑顺子,再考虑四带,三带,对子,单牌,加点最优性剪枝即可。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define LD double#define max(

2016-11-16 12:38:06 458

原创 【jzoj4894】【SJR的直线】【数论】

题目大意给出没有三线交在一点的一些直线,求围成了多少个三角形。解题思路求出交点的个数组合数一发,再求出三点共线的情况,减一发即可。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k)

2016-11-16 12:33:24 392

原创 【jzoj4895】【三部曲】【线段树】

题目大意因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市 被加派了k名士兵时。城市i的所有子城市需要被加派k+1名士兵。这些子城市的所有子城市需要被加派k+2名士兵。以此类推。当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以城市i为根的子树中的所有城市共被加派了多少士兵。你现在是国王的军事大臣,你能回答出国王的每个询问么?解题思路先按dfs序重标号

2016-11-16 08:06:27 405

原创 【jzoj4896】【兔子】【二分答案】

题目大意在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张N个点、M条边的无向连通图,而度数大于2的点至多有1个。兔子们决定把其中K个兔子窝扩建成临时避难所。当危险来临时,每只兔子均会同时前往距离它最近的避难所躲避,路程中花费的时间在数值上等于经

2016-11-15 22:41:49 839

原创 【jzoj4882】【多段线性函数】

题目大意解题思路考虑一个数在区间左边和右边才贡献,先把标记打在边界,然后像前缀和那样传递,然后离散化选的点一定在边界上,枚举选的点利用预处理的信息即可求出答案。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL lo

2016-11-15 12:19:58 375

原创 【jzoj4884】【图的半径】

题目大意给出一副带权无向图,求图的半径,中点可以在边上。解题思路先求出两两最短路,枚举一条边,考虑最短路从哪一端走的临界点,把所有边的临界点排序,发现走左端的点逐渐减少,右端的点逐渐增多,可以排序后o(n)维护左端最大和右端最大,从而算出经过当前边的直径,取最大值即答案。code#include<set>#include<cmath>#include<cstdio>#include<cstri

2016-11-15 08:05:39 728

原创 【jzoj4893】【过河】【最短路】

题目大意解题思路删掉半径小费用大的盘,盘就变成半径费用单调。以第i个柱,j种盘为点,枚举另一个点,利用单调性找出最小相交的盘子连边,每个柱小盘子向大盘子连边,边权为差值,再跑最短路就可以了。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define min(x,y) ((x<y)?x:y)

2016-11-14 21:57:24 642 1

原创 【jzoj4891】【摆书】

题目大意给出1到n的排列,每次可把一个数提到队头,求最少次数是序列有序。解题思路答案为n-结尾为n的最长连续上升子序列。code#include<cstdio>#include<algorithm>#define LL long long#define min(x,y) ((x<y)?x:y)#define max(x,y) ((x>y)?x:y)#define fo(i,j,k) for

2016-11-14 21:46:13 300

原创 【jzoj4892】【最优得分】

题目大意给出很多道题,每题的得分随时间线性减少,求给定时间内最高得分解题思路考虑相邻两题的先后顺序,得到偏序关系,再经转化得到任意两题的绝对偏序关系,排序后就是背包问题。code#include<cstdio>#include<algorithm>#define LL long long#define min(x,y) ((x<y)?x:y)#define max(x,y) ((x>y)?x

2016-11-14 21:38:34 362

原创 【jzoj4885】【隔壁】

题目大意已知主视图左视图,求可能的体积最大值与最小值。解题思路对于一个位置最大值不能超过行列的限制,取行列最小值求和即可求出最大值,知道每行每列都要出现给定的值,如果行列出现相同的数,就可以省下一个数,求和即最小值。code#include<cstdio>#include<cstring>#include<algorithm>#define min(a,b) ((a<b)?a:b)#defi

2016-11-14 08:27:22 408

原创 【jzoj4886】【字符串】【动态规划】【kmp】

题目大意对于任意长度n的小写字母字符串,不包含给定字符串个数。解题思路f[i][j]表示第i个字符,与给定串匹配了j位的方案数。预先用kmp预处理好填一个字符会匹配到哪里,dp转移即可。code#include<cstdio>#include<cstring>#include<algorithm>#define min(a,b) ((a<b)?a:b)#define fo(i,j,k) fo

2016-11-14 08:20:57 512

原创 【jzoj4887】【最大匹配】【树形动态规划】

题目大意求出一棵树的最大匹配和方案。解题思路树形dp,f[i][0,1]表示i有没选的最大匹配,顺便记录方案数。考虑选i的情况,要在儿子中找到一个没选的,统计一下方案数。code#include<cstdio>#include<cstring>#include<algorithm>#define LL long long#define min(a,b) ((a<b)?a:b)#define

2016-11-14 08:15:53 519

原创 【jzoj4889】【最长公共回文子序列】【字符串】

题目大意给出一长一短两个字符串,求最长公共回文子序列解题思路枚举短串所有字串判断是否回文,在长串中查找,可以用二分,也可以倒着预处理最近的转移位置。code#include<cstdio>#include<cstring>#include<algorithm>#define LL long long#define min(a,b) ((a<b)?a:b)#define max(a,b) (

2016-11-12 22:02:21 361

原创 【jzoj4888】【最近公共祖先】

题目大意n层的满k叉树T,求对于每一对(i,j)(1≤i,j≤T的点数),LCA(T,i,j)的深度的和是多少。这个数字n层的满k叉树指一棵带标号的有根树,深度为i(0≤i解题思路显然得出ans=∑n−1i=1i∗ki∗(((kn−i−1)/(k−1))2−k∗((kn−i−1−1)/(k−1))2)ans=\sum_{i=1}^{n-1}i*k^i*(((k^{n-i}-1)/(k-1))^2-k

2016-11-12 21:50:06 321

原创 【jzoj4890】【随机游走】

题目大意给出一棵树,边权为一,一个点走到相邻点的概率相等,求一对点对期望最多走多少步能到达。解题思路可以推出走过一条边的期望,考虑lca为i的路径贡献,找到走到i和从i出发不同子树和最远的路径,和答案取max即可。code#include<cstdio>#include<cstring>#include<algorithm>#define LL long long#define min(a,

2016-11-12 21:38:27 572

原创 【jzoj4840】【小W砍大树】【模拟】

题目大意解题思路开一个栈模拟即可。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define LD double#define max(a,b) ((a>b)?a:b)#define

2016-11-09 11:51:26 379 1

原创 【jzoj4841】【平衡的子集】【搜索】

题目大意夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?解题思路使用meet in the middle,分开暴力枚举将两个集合的差值求出来,保存选取情况,合并的时候hash判重。code#include<set>#include<cmath>#include<cstdio>#inc

2016-11-09 11:44:08 327

原创 【jzoj4876】【基因突变】【exkmp】

题目大意707获取了人类的基因信息并尝试对基因进行实验。他发现可以把人类的基因看做一个只包含小写字母的字符串,并定义从头开始任意长度的基因为“源头基因”人类身上与源头基因完全匹配的片段越多,这个人就越容易被控制。于是707就开始了他邪恶的计划……作为人类卫士的射手ZMiG自然不会让707得逞,他决定拯救人类,现在他拿到了其中一个人被改造后的基因,他想请你统计一下它的基因中究竟有多少基因片段是可以与源

2016-11-08 22:13:58 379

原创 【jzoj4877】【力场护盾】【树状数组】

题目大意给出坐标系上一些点,每个点只能往一个给定小于180度的方向走,求最长路的长度。解题思路发现给定方向是90度就可以直接按x排序做最长不下降子序列,现在的问题是转化成直角。我们可以先变换一下坐标系,令 x 轴为其中一条向量(x1,y1),y 轴为另外一条向量(x2,y2)然后用这两个向量去合成原题中所给出的点(x,y),列出方程为x’(x1,y1)+y’(x2,y2)=(x,y)则有 x’*x1

2016-11-08 21:46:31 507

原创 【jzoj4878】【时空传送】【最短路】

题目大意给出一个有向无环图,求删除一个点是最长路最小,求删除那个点和删除后的最长路。解题思路先求出一个点往前往后的最长路,按拓扑序枚举点用数据结构维护最长路,先删除往后的最长路和经过入边的最长路,统计答案,然后加入到前面的最长路和经过出边的最长路。能这样做是因为是一个有向无环图按拓扑序做,删除当前点后面的路显然没有贡献,不经过当前点的路一定已经加入,过了这个点显然不会再影响,所以可以放心加入,只要处

2016-11-08 21:26:35 321

原创 【jzoj4859】【连锁店】

题目大意在第i家店,顾客可以用ai个饮料瓶兑换到bi瓶饮料和1个纪念币(注意不足ai个饮料瓶则不能兑换)。一家店可以兑换多次,兑换得到的饮料瓶还可以继续用于兑换。小C买了s瓶饮料,他想知道用这s瓶饮料最多可以兑换到多少个纪念币。解题思路贪心,以差值为第一关键字,花费为第二关键字排序,有可能大于longlong,所以要用unsigned longlong,注意读入用llu。code#include<s

2016-11-07 22:41:18 464

原创 【jzoj4860】【分解数】【线性筛法】

题目大意给出一个数,每次可以分成两个互质的数,求可以分解多少次。解题思路其实就是求不同的质因子个数,可以用线筛求出每个数的前驱来分解质因数,因为卡空间所以要牺牲时间来换空间少存一些值。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#

2016-11-07 22:36:58 365

原创 【jzoj4866】【禅与园林艺术】【树状数组】

题目大意有一个长度为 n 的数列{ai},为一列树木的美观值。现在有m 次询问,每次给出三个数l,r和P,询问对于所有的l <= l’ <= r’ <= r (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值。解题思路发现区间长度大于模数时答案为零,所以用个树状数组维护一下就可以了。code#include<set>#include<cmath>#include<

2016-11-07 21:52:01 316

原创 【jzoj4863】【Market】

题目大意解题思路将商店和询问按时间排序,一边dp一边回答询问。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define LD double#define max(a,b) ((a>b)

2016-11-07 21:46:49 314

原创 【jzoj4869】【平均数】

题目大意解题思路二分答案,求和小于等于零的区间个数,等于求前缀和的逆序对个数,可以排序离散化后用树状数组做,然而这回被卡常,还是乖乖归并。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#de

2016-11-07 21:44:09 291

原创 【jzoj4868】【Simple】【数论】

题目大意解题思路最暴力的方法就是枚举x,就可以算出有多少种y,然而这会重复。发现这题的性质,就是扩展gcd,对于一个c若只有一个合法x就不会重复,相邻两个x间隔m/gcd(n,m),所以只要x在[0,m/gcd(n,m)-1]内就不会有重复。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<io

2016-11-07 21:39:27 361

原创 【jzoj4870】【涂色游戏】【动态规划】【矩阵快速幂】

题目大意解题思路设f[i][j]表示一列有i个数,j种颜色的方案数,f[i][j]=f[i-1][j-1]*(p-j+1)+f[i-1][j]*j。g[i][j]表示第i列,j种颜色的方案数,g[i][j]=g[i-1][k]*mat[j][k]。设x表示i,j并集,mat[i][j]=f[n][j]/c[p][j]*c[i][i+j-x]*c[p-i][x-i]。推出矩阵后就可以快速幂。code#

2016-11-07 21:33:01 510

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除