自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【jzoj4932】【贪心】【二分答案】

题目大意现在你有N个数,分别为A1,A2,…,AN,现在有M组询问需要你回答。每个询问将会给你一个L和R(L<=R),保证Max{Ai}-Min{Ai}<=R-L,你需要找出并输出最小的K(1<=K<=N,不存在输出-1)满足以下两个条件:①能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的和在区间[L,R]内。②能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的

2016-12-28 22:42:31 390

原创 【jzoj4931】【bzoj4380】【POI2015】【Myjnie】【动态规划】

题目大意有N家洗车店从左往右排成一排,每家店都有一个正整数价格Pi。有M个人要来消费,第i个人会驶过第Ai个开始一直到第Bi个洗车店,且会选择这些店中最便宜的一个进行一次消费。但是如果这个最便宜的价格大于Ci,那么这个人就不洗车了。请给每家店指定一个价格,使得所有人花的钱的总和最大。bzoj上需要输出方案。解题思路我们发现指定的价格一定属于ci可以先将c离散化,g[i][j][l]表示第i到j家店最

2016-12-27 22:29:30 622

原创 【jzoj4815】【ksum】【set】

题目大意解题思路我们发现可以记录从第i位开始的数组的后缀,因为数为正数所以有单调性,所以我们可以逐个数从后缀中删除,这样可以考虑所有情况,用set维护就好了。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long

2016-12-25 10:42:19 413

原创 【jzoj3099】【NOIP2012提高组】【Vigenère密码】

题目大意16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。 在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。 在Vigenère密码

2016-12-24 19:40:26 478

原创 【jzoj3100】【NOIP2012提高组】【国王游戏】【贪心】【高精度】

题目大意恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想

2016-12-24 19:34:55 353

原创 【jzoj3101】【NOIP2012提高组】【开车旅行】

题目大意小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 i 和城市 j 之间的距离 d[i,j]恰好是这两个城市海拔高度之差的绝对值,即 d[i,j] = |���� −����|。 旅行过程中,小 A 和小 B 轮流开车,第一天小 A 开车,之后每天轮换

2016-12-24 19:30:01 1039

原创 【jzoj4822】【完美标号】【2-set】

题目大意给定M个二元组(A_i, B_i),求X_1, …, X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。解题思路我们发现其实这是二分图判定,我们只要用0,1染色即可,直接dfs。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostrea

2016-12-24 19:09:20 416

原创 【jzoj4933】【线段树】

题目大意解题思路没什么好说的,直接线段树,由于我打得丑,1.5sTLE。TLE-code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LL long long#define min(a,b) ((a<b)?a:b)#define max(a,b) ((a>b)?a:b)#define

2016-12-24 17:03:12 294

原创 【jzoj4922】【环】

题目大意有一个环,环上有一些数,求分成i份,每份要连续,对于每个分成i份的情况求每一份的数的和gcd起来最大是多少。解题思路我们发现答案一定是所有数和的约数,这不会很大,找出约数后求模约数的前缀和,有多少个相同就可以分成多少份。code#include<cmath>#include<cstdio>#include<algorithm>#define LF double#define LL l

2016-12-17 20:39:14 415

原创 【jzoj3723】【srm603】【Sum Of Arrays】【fft】

题目大意有两个长度为n整数数列A 和B。(n<=1e5)把A,B按某种顺序排序生成C,C[i] = A[i] + B[i]。目标是让C 里面产生尽可能多的相同数字,求最多出现的数字出现多少次和这时最大是多少。你会获得整数n 以及用于产生数列A 和B 的随机种子。每一组随机种子有六个整数,用a0, a1,… ,a5 以及b0, b1,…,b5表示。数列A 按照如下定义生成:A[0] = a0。A[1]

2016-12-17 17:53:59 337

原创 【jzoj3617】【ZJOI2014】【力】【fft】

题目大意解题思路Ei=∑j<iqj/(i−j)2−∑j>iqj/(i−j)2E_i=\sum_{j<i}q_j/(i-j)^2-\sum_{j>i}q_j/(i-j)^2我们设f[i]=1/i/i,gi=∑j<iqj/(i−j)2=∑j<iqjfi−jg_i=\sum_{j<i}q_j/(i-j)^2=\sum_{j<i}q_jf_{i-j}我们发现这个数一个卷积,我们把q和f当作两个从左到右是从低

2016-12-15 16:15:00 277

原创 【jzoj4921】【幻魔皇】

题目大意幻魔皇拉比艾尔很喜欢斐波那契树,他想找到神奇的节点对。所谓斐波那契树,根是一个白色节点,每个白色节点都有一个黑色节点儿子,而每个黑色节点则有一个白色和一个黑色节点儿子。神奇的节点对则是指白色节点对。请问对于深度为n的斐波那契树,其中距离为i的神奇节点对有多少个?拉比艾尔需要你对于1<=i<=2n的所有i都求出答案。解题思路首先我们发现对于白点只有子树中的白点才可能与它配对(只有一个子节点),

2016-12-12 14:30:33 576

原创 【jzoj4919】【神炎皇】【数论】

题目大意对于一个整数对(a,b),若满足a+b<=n且a+b是ab的因子,则成为神奇的数对。请问这样的数对共有多少呢?解题思路设gcd(a,b)=k,a’=a/k,b’=b/k。a+b<=n&&a+b|ab=>(a’+b’)k<=n&&(a’+b’)k|a’b’k^2。gcd(a’,b’)=1=>gcd(a’+b’,a’)=gcd(a’+b’,b’)=1=>gcd(a’+b’,a’b’)=1=>(a

2016-12-11 17:39:39 720

原创 【jzoj4920】【降雷皇】【动态规划】【二分答案】【数据结构】

题目大意求一个序列的最长上升子序列及方案数。解题思路首先维护一个数组,t[i]表示长度为i的最长上升子序列末尾最小是多少,这样就可以求出第一个答案。每个长度再用权值线段树维护每个末尾的方案数,转移方案数时求一下比它小的末尾方案数之和。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#defin

2016-12-10 15:15:35 423

原创 【jzoj4823】【小W学物理】【模拟】

题目大意为了测试小W的物理水平,Mr.X在二维坐标系中放了N面镜子(镜子坐标绝对值不超过M),镜子均与坐标轴成45°角,所以一共有两种类型“/”和“\”。原点不会有镜子,任意一点最多只有一面镜子。镜子两个面都能反光,而中间不透光,例如,对于一个“/”型镜子,下方向射入的光线会被反射到右方向,左方向射入的光线会被反射到上方向。现在有一条光线从原点沿X轴正方向射出,求走过T路程后所在位置。解题思路排序后

2016-12-10 14:40:53 362

原创 【jzoj4824】【配对游戏】【搜索】

题目大意流行的跳棋游戏是在一个有m*n个方格的长方形棋盘上玩的。棋盘起初全部被动物或障碍物占满了。在一个方格中,‘X’表示一个障碍物,一个‘0’~‘9’的个位数字表示一个不同种类的动物,相同的个位数字表示相同种类的动物。一对动物只有当它们属于同一种类时才可以被消去。消去之后,他们所占的方格就成为空方格,直到游戏结束。要消去一对动物的前提条件是:这对候选动物所在的方格必须相邻,或它们之间存在一条通路。

2016-12-10 14:35:41 371

原创 【jzoj4825】【舞会配对】【贪心】

题目大意在舞会上有N个男孩和N个女孩,每个人都量过了自己的身高。每个男孩只跟女孩跳舞,并且女孩也只跟男孩跳舞。每个人最多只有一个舞伴。男孩或者想和比自己高的女孩跳舞,或者想和比自己低的女孩跳舞,同样的,女孩也是或者想和比自己高的男孩跳舞,或者想和比自己低的男孩跳舞。你能决定最多有多少对能在一起跳舞吗?解题思路将喜欢高的标记为正,喜欢低的标记为负,排序之后贪心地取。code#include<set>

2016-12-10 14:03:55 1266

原创 【jzoj4826】【小澳的葫芦】【二分答案】

题目大意葫芦世界有n个葫芦,标号为1~ n。n个葫芦由m条藤连接,每条藤连接了两个葫芦,这些藤构成了一张有向无环图。小澳爬过每条藤都会消耗一定的能量。小澳站在1号葫芦上(你可以认为葫芦非常大,可以承受小澳的体重),他想沿着藤爬到n号葫芦上,其中每个葫芦只经过一次。小澳找到一条路径,使得消耗的能量与经过的葫芦数的比值最小。解题思路二分答案,将每一条边都减去二分的答案,求1到n的最短路,如果最短路小于0

2016-12-10 13:51:07 623

原创 【jzoj4827】【钻石游戏】

题目大意一个M行N列的棋盘,里面放了M*N个各种颜色的钻石。每一次你可以选择任意两个相邻的颜色不同的钻石,进行交换。两个格子相邻的定义是两个格子有一条公共边。每次交换的分值为通过这次交换后能够形成的最大矩形的面积,具体请见样例。跟传统的钻石游戏不太一样的是,交换后钻石不会消除。现在告诉你每一次操作,请输出每一次所能得到的分值。解题思路首先我们可以预处理出一个点往上下左右最远扩展到哪里(同色),每个询

2016-12-10 13:15:40 447

原创 【快速傅立叶变换fft&数论变换ntt学习小记】

概述fft(快速傅立叶变换)是用来解决多项式乘法的nlog(n)算法,它的主要思想是先把多项式的多项式表达法转化成若干个二维点对(x,y)(点值),把相同x的y乘起来(计算),最后利用这些点对计算出多项式的多项式表达法的系数(插值)。这中间使用了n次单位复数根的一些特殊性质,采用分治的思想快速地完成点值和插值。n次单位复数根要想理解fft,首先要知道n次单位复数根有哪些神奇的性质。定义n次单位复数根

2016-12-09 21:56:20 1038

原创 【51nod1028】【大数乘法 V2】【fft】

题目大意给出2个大整数A,B,计算A*B的结果。解题思路fft,然而会卡精度,使用模运算的fft即可解决问题。code#include<cmath>#include<cstdio>#include<algorithm>#define LD double#define LL long long#define min(a,b) ((a<b)?a:b)#define max(a,b) ((a>

2016-12-08 15:55:05 350

原创 【jzoj4831】【方程式】

题目大意解多次方程,解在1到20内。解题思路暴力枚举,因式分解。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-12-04 17:30:12 291

原创 【jzoj4832】【高维宇宙】【网络流】【二分图匹配】

题目大意给出一个长度为n的序列a[i],可以选两个数组成新的数,每个数最多使用一次,求最多组成多少个质数。解题思路首先算出有哪些数可以配对,用匈牙利求出最大匹配。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL l

2016-12-04 16:02:09 329

原创 【jzoj3029】【NOIP2011DAY2】【观光公交】【贪心】

这里写代码片

2016-12-04 15:48:13 305

原创 【jzoj4899】【雪之国度】【最小生成树】【并查集按秩合并】

题目大意给出一棵带点权的图,边权为点权之差的绝对值,询问两点之间两条不相交的路径,权值最大的权值是多少。解题思路先搞出最小生成树,再从小到大添加非树边,每添加一条就会形成一个边双连通分量,双连通分量里两两的答案就是添加边的价值(如果之前没连通),那么我们就可以用并查集把这个双连通分量并在一起,但是我们不路径压缩,这样可以让我们知道两个点最早什么时候连通(查看路径上的边最后加入的是哪条),这样就可以求

2016-12-04 11:47:56 369

原创 【jzoj4900】【完全平方数】【数论】

题目大意选1到n的数中的若干个,组成一个最大的完全平方数。解题思路首先我们把合数都先选上,因为我们可以通过选质数来使它变成完全平方数,分解质因数后看指数的奇偶性就可以了。code#include<cstdio>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j

2016-12-04 10:04:15 505

原创 【51nod1040】【最大公约数之和】【欧拉函数】

题目大意给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 61,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15解题思路ans=∑x|nx∗∑ni=1gcd(i,n)==xans=\sum_{x|n}x*\sum_{i=1}^n gcd(i,n)==x=>ans=∑x|nx∗∑ni=1gcd(i/x,n/x)==xans=\sum_{x|n}x*\

2016-12-03 21:51:16 302

原创 【jzoj4901】【矩阵】【动态规划】

题目大意给出矩阵中每行每列的和,还有矩阵的每项都是非负整数。求满足这样条件的矩阵总共有多少种。解题思路由于一行最多只有3个数,只有125行,设f[i][j][k]为到第i行,第一列填了j,第二列填了k的方案数,直接dp剪一下枝就可以了。code#include<cstdio>#include<algorithm>#define LL long long#define min(x,y) ((x<

2016-12-03 19:29:10 323

原创 【jzoj4911】【人生的叹息】【贪心】

题目大意把一个长度为n的序列a[i]分成x份每一份的花费不能超过k,每一分的花费为,求最少分成多少份。解题思路可以考虑贪心,因为能把一个数放进当前块就尽量放这样肯定更优,算花费的时候用桶计算就可以了。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define min(a,b) ((a<b)

2016-12-03 19:09:42 275

原创 【jzoj4910】【子串】【字符串】【kmp】

题目大意有n个字符串,求编号最大的字符串,它前面有一个串不是它的子串。解题思路顺序枚举当前字符串now,维护一个指针表示最前一个不是当前串的子串的串,可以发现如果当前串是后面串的子串,前面的串也一定是后面串的子串,每个串都只考虑一次,所以复杂度是可以的。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>

2016-12-03 17:04:33 349

原创 【jzoj4909】【李电下棋】【数论】【结论】

题目大意有1到n个格子,一开始在a,b处有棋子,k能放棋子当且仅当i,j有棋子,k=i+j或k=|i-j|,不能放的人输,问先手必胜还是必输。解题思路发现k是gcd(a,b)的倍数时一定可达,算出有多少个格子,判断奇偶性即可。code#include<cmath>#include<cstdio>#include<algorithm>#define LL long long#define mi

2016-12-03 16:36:38 326

原创 【51nod1086】【背包问题 V2】【动态规划】【二进制分组】

题目大意有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。解题思路首先我们可以动态规划,直接做显然会t,我们可以考虑把多重背包转换成01背包,这样就可以很快得解。我们可以考虑二进制分组,首先低位的必须要有,这样保证我们可以组成前面的数,剩余

2016-12-02 22:01:32 525

原创 【51nod1093】【骆驼和香蕉】【贪心】

题目大意一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距离 > K的地方。现在给出N和K,问骆驼走到目的地最少需要消耗多少香蕉。解题思路原来可以停在实数点!!!考虑从终点开

2016-12-02 20:21:09 634

原创 【51nod1105】【第K大的数】【二分答案】

题目大意数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ……A[1] * B[0],A[1] * B[1]……A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。例如:A:1 2 3,B:2 3 4。A与B组合成的C包括2 3 4 4 6 8 6 9 12共9个数。解题思路排序后二分答案,由于数的单调性

2016-12-01 18:48:49 620

空空如也

空空如也

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

TA关注的人

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