自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anxdada -- 我等风来也等你

此博客不会维护了

  • 博客(59)
  • 收藏
  • 关注

原创 ZOJ 1025 Wooden Sticks 【思维 + 最长下降子序列 + Dilworth定理】

传送门 // 题意: 有n个木头, 每个木头有一个长度和重量. 每次一根木头准备需要1分钟, 如果下一根木头的(l’, w’) l’ >= l, w’ >= w, 那么就不用多余准备时间, 否则准备时间加1, 问处理掉这些木头最少需要多少分钟.思路: 有一个很明显的二维偏序关系在里面, 那么假设我们只看一维, 那么就是问最少可以划分多少组最长不下降子序列, 那么由这个Dilworth定理我们可以转

2018-03-30 12:10:10 288

原创 fjut 1210 集训队的字符串 【two pointer】

传送门题意: 就是给定一个包含a, b, c的字符串, 每次可以删去该字符串第一个字符和最后一个字符, 问最少包含a, b, 一个的最短字符串有多长.思路: 很明显的双指针问题, 每次取到一个满足条件的就取一取ans, 当然双指针问题最难的部分就是在于控制好边界条件, 每次边界条件是最难处理的, 所以我们处理时要时刻记清楚自己取的是l, r表示的哪一部分, 即那方是闭区间, 那方是开区间…...

2018-03-30 11:11:47 219

原创 Dilworth定理 的相关应用

讲的好的博客证明总结一下:给定一个序列, (假定有重复数字, 没有重复的类似推导) 1:如果求每次在其中选出一个不下降子序列并将其删掉, 求删完整个序列所需要的选择子序列的次数 (相当于求一个不下降子序列最小划分size) 例: 1 2 4 3 5 就要删2次, 第一次1 2 3 5. 根据定理转换: 实际上就是求这原序列的最长下降子序列2:如果求每次在其中选出一个下降子序列并将其删掉, 求删

2018-03-29 22:22:06 729

原创 计蒜客 蓝桥杯模拟赛5 B组 部分题解

传送门 D: 快速幂, 理解到原理, 然后写个2, 2判断下应该怎么走即可ans: int res = pw(x, y>>1, p) * pw(x, y>>1, p) % p;E: 因为产生0的原因只能值2 和 5的结合, 有一个结合就会多一个零, 但是我们可以注意到2的数量比5的多很多, 所以直接数n!的阶乘会产生多少个5即可…..ans: ans += n...

2018-03-29 00:02:02 281

原创 整数划分问题 【经典DP】

相关题目1 相关题目2 相关题目3下面的描述大部分借鉴于(https://blog.csdn.net/Lin_disguiser/article/details/50574818), 感谢, 但是其中有部分错误, 我会在下面的描述中纠正过来…总的解决方法时截边法, 也就是去讨论有1无1的情况和截去他们的情况….. 记住了.一 求将n划分为若干正整数之和的划分数1. 若划分的多个...

2018-03-28 21:07:35 381

原创 天梯赛 L3 - 015 球队“食物链” 【dfs + 剪枝】

传送门 题意不多说.思路: 这个问题很明显的是哈密顿回路的版本, 而哈密顿回路是个NP问题, 用dfs当然可以出答案, 但是点不能太多, 这个题目20个点, 再加上剪枝就可以过了. 所以首先确定我们的想法就是dfs. 我们首先知道的是如果存在食物链, 那么肯定要从1开始搜是最优的. 其次是要字典序最小, 那么肯定下一个要遍历的点的编号尽量的小最好. 所以建好了图以后要对每个点可以到达的点排个序.

2018-03-26 21:00:17 233

原创 天梯模拟赛 L1 - 03 宇宙无敌加法器 【模拟加法】

L1-3 宇宙无敌加法器(20 分)地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在 PAT 星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个 PAT 星人都必须熟记各位数字的进制表,例如“……0527”就表示最低位是 7 进制数、第 2 位是 2 进制数、第 3 位是 5 进制数、第 4 位是 10 进制数,等等。每一位的进制 d 或者是 0

2018-03-26 19:33:48 300

原创 天梯赛 L2-002 链表去重 和 L2-022 重排链表

L2-002 L2-022 把链表一类的放在一起写好一点….对于链表一类的题目都用一个结构体去表示一个结点, 并且遍历的时候都是通过遍历当前的编号来的, 不要用遍历下一个编号之类的来做. 然后结点中要维护好哪些值就在结构体中添加哪些值即可, 最常见的就是值和下一个节点了, 然后用好了结构体表示后就比较好写的….L2–002: 这个直接模拟做就好了, 逻辑清晰点……AC Codeconst int

2018-03-26 19:26:06 251

原创 天梯赛 L2 - 007 家庭房产 【并查集】

传送门 // 题意: 题意就不多说了. 直接开讲思路.首先有一个家族关系, 那么肯定这个要用并查集维护, 然后家庭人数就是集合的size, 也比较好维护, 比较难做的点是维护集合中每一个点有房产的, 所以对于这种题, 就不要再用下标从1开始累加他们了, 直接用下标来代替他们的编号, 因为这个编号范围很小, 我们可以直接枚举所有在这个范围内的点, 这种题都是这种套路, 记好了! 然后就是标记出现过的

2018-03-26 19:16:10 318

原创 VK Cup 2018 Round 2 div2 C, D 题解 【思维题】

传送门 C: 给定n个严格递增的数, 要从中选择三个数, 再满足下标i< j < k, 且a[k] - a[i] <= U, 的两个限制下,问可以使这个a[k]-a[j]/a[k]-a[i]最大是多少.思路:就是一道很简单的水题,只不过要进行一定的小推导, 首先我们要知道的是如果确定了i, k, 那么很明显j = i + 1; 因为这样才能使a[j] 最小, 即分子a[k]-a[j]越大, 所以我

2018-03-26 11:51:17 516 1

原创 2018年四校联合周赛-第三场 灯 题解

肯定很多人上来就是容斥一下, 但是实际上不是的, 可以将这三个的数的VN图画出来就明白了, 容斥算的总的并面积, 而我们需要的是算覆盖奇数次的面积, 所以容斥是错的, 然后通过vn图可以发现关系恰好是1 2 4的倍数. 所以直接O(1)的算即可.AC Codevoid solve(){ int t; scanf("%d", &t); while(t--) { ll

2018-03-24 23:29:03 206

原创 CF EDU 40 C, D, G 题解 【思维,图论,二分】

传送门 C: 题意: 已知该人的旅游路线,编号的规则为 Ai, j = y(i - 1) + j,让你求是否存在某个矩阵的满足路线,不懂的可以看下样例1思路: 对于相邻的两个数之间的间隔一定是1 或者 y, 所以我们只需要管y不用管x, 那么我们直接check所有的间隔是不是y就是了, 注意一个坑点就是如果y == 3, 那么3 4 是不符合题意的, 即我们算出y后还要for一遍check出这种

2018-03-24 21:47:29 238

原创 第13届广工大校赛 F 题 等式 【数学推导 + 约数个数定理】

传送门 题意: 就是求1/x + 1/y = 1/n(x <= y),给定n,求x, y的正整数解.思路:刚那道题是懵逼的, 比赛时也是乱搞的, 后面知道正解了…. (没想到啊), 首先化解原式: yn + xn = xy -> xy - xn - yn = 0 -> xy - xn - yn + n^2 =n^2 -> (x-n)(y-n) = n^2; 化完这里

2018-03-24 21:03:55 325

原创 Wannafly 挑战赛 12 A, C题解 【dp题】

传送门 A: 中文题就不说题意了, 这个一眼背包啊, 但是纠结在这个利率是加上面, 然后一直过不了样例, 知道我换成了乘, 这个银行利率还是不会算啊…….. 直接完全背包即可.AC Codedb dp[maxn], r[10];void solve(){ int n; cin >> n; for (int i = 1 ; i <= 5 ; i ++) { if

2018-03-24 20:51:58 191

原创 计蒜客 2018 蓝桥杯省赛 B 组模拟赛(一)题解

传送门 A: 直接暴力跑答案 ans = 1;B: 还是暴力算模拟一遍即可 ans = 571;C: 这道题还是暴力算有多少个满足条件的即可, 就是模拟的时候有点恶心, 要考虑到边界情况即可. AC Codeconst int maxn = 1e5+5;void solve(){ int ans = 0; for (int i = 100 ; i <= 100000 ;

2018-03-22 20:45:02 881

原创 CodeForces - 797C Minimal string 【贪心 + 后缀处理】

传送门 // 题意: 给定一个字符串, 每次可以进行两种操作, 一种是将s的头部字符取出来给t,另一种是将t的尾部字符取出来给u, 问最后使得s, t为空, u字典序最小的u是多少.思路: 很明显我们肯定是贪心的让越小的先进u即可,除此之外, 我们还要保存下t, 我们其实不要想太复杂, 影响此时我们是从t中取还是继续从s中取的一个原因就是如果s后面还有比当前t的尾部字符小的就要继续从s中取, 因为

2018-03-21 14:25:53 303

原创 POJ 2785 4 Values whose Sum is 0 【折半二分处理的好题】

传送门 // 题意:给定四个数组, 每个数组中有n个数, 然后从每一个数组中恰好挑选出一个数字使得这四个数字加起来等于0的方案数是多少?思路: 最简单办理的方法就是n^3logn查找, 肯定是不行的… 那么我们可以想将这四个数组分成两个数组, 然后问题就等价于从这两个数组中任意选择一个数使得他们加起来等于0的方法数. 即折半. 所以我们先处理前两个数组的所有可能先存下来, 然后再次枚举剩下的两个数

2018-03-21 14:18:46 213

原创 CodeForces - 789D Weird journey 【思维 + 欧拉路径计数】

传送门 // 题意: 一幅(n, m)无向图, 问这幅图中有多少条路径满足经过m-2条路径2次, 剩余两条路径一次. 思路:首先我们要进行题意转换, 假设把所有的边都变成两条, 那么在任意去除两条路, 问题就变成是否剩下的路径是否可以构成一笔画问题, 也就是是否是欧拉路径, 即假想所有边变成两条后去掉两条边的方案数. 所以无向图的欧拉路径的充要条件为奇度个数为0或2. 所以我们分类讨论下, 边分为

2018-03-20 20:44:03 306

原创 POJ 1948 Triangular Pastures 【经典问题 - 二维01背包求最大三角形】

传送门 // 题意 : 现在有n根木棍, 要求把这些木棍全部用上, 能组成的最大三角形面积是多少. 不能组成输出-1.思路: 这个问题就很经典了, 我们首先看数据范围, 最多40根, 每根最长40, 那么周长最长1600, 那么我们就要枚举到1600?显然不是的, 我们可以利用好三角形的边长特点, 可以发现最长的边是周长的一半即800, 所以我们设dp[i][j][k] 代表前i个木棍存在两边长为

2018-03-19 22:13:02 372

原创 HDU 5239 Doom 【打表找规律 + 线段树区间更新中的单点更新】好题!

传送门 // 题意: 开始有一个计数器为0, 然后每次询问给出一个区间, 将l-r之间所有的数每一个都平方一下. 平方之前先将sum[l-r] 的和加到s上. 然后每次询问输出s, 注意每次修改操作都要mod 9223372034707292160.思路: 看到提示”线段树区间更新中的单点更新”, 就已经猜出了每个点被更新的次数不会太多次吧? 答案也确实是这样的, 我们先打表, 注意这个lo...

2018-03-19 20:52:58 243

原创 HDU 5245 Joyful 【期望概率】

传送门 // 题意: 一个n*m的地图, 等可能的选择其中两块, 围成的矩形涂上颜色, 问最后有多少块被涂上了颜色, 也就是问期望. 四舍五入.(先吐槽一波: 我的概率是真的菜… 这道题比赛的时候就是没做出来……..) 思路: 既然是期望题, 我们首先要联系概率, 那么对于一个点它一次被涂上的概率是p , 那么不被涂的概率就是1-p, 那么k次没有被涂的概率就是(1-p)^k, (因为这个是

2018-03-19 18:58:28 238

原创 HDU 5242 Game 【树上贪心 + 思维】

传送门 // 题意: 给定一颗有根有向树. 然后同时k次从1出发, 每个点有点权, 问最多可以获得多少点权, 每个点的点权只能被获得一次.// 思路: 很明显, 如果我们正着从1开始走, 那么遇到分岔路的话, 就不能决定往哪个方向走了, 所以我们想反向建树, 然后从每个叶结点往根节点走,这样路径就是唯一的, 然后把每条路径的点权和存下来, 排一个序, 又从路径值最大的那个点开始走, 这个时候我们就

2018-03-19 18:44:04 395

原创 牛客练习赛13 D 题 幸运数字IV 【康拓逆展开 + 思维】

传送门 // 题意: 首先定义一个叫幸运数字的概念(具体看题), 就是给定一个n, k; 求1-n的第k小排列中有多少个幸运数字它所在的位置也是幸运数字…思路: 很明显我们需要知道第k小排列的具体情况. 所以肯定是要求的. k &lt;= 1e9, 13! &gt; 1e9的,所以很明显最多只会是n的最后13位进行移动, 前面可以通过预处理加二分求出, 后面的直接用康拓逆展开带偏移量的求一下...

2018-03-19 15:48:14 299

原创 康拓展开以及逆展开 板子

讲的很好的一篇博客, 原理之类的康托展开: (板子) fac是存的阶乘数, s是当前我们需要求的这个排列. 返回值为康托值+1, 即第几排列.ll fac[15];int kang(string s) { int len = sz(s); fac[0] = 1; for (int i = 1 ; i &lt;= len ; i ++) { fac[i] ...

2018-03-19 15:43:16 330

原创 HDU 1864 最大报销额 【01背包】

传送门 // 题意是中文就不重复了…. 思路也很简单就是个普普通通的01背包类型. 就说几个坑点…..1: 这个保证了只精确到小数点后2两位, 也就是我们可以通过将钱扩大100倍使得下标允许范围内的… 所以范围要大一点….. 这一点在题目中没有说…2: 题目虽然说的是”单项物品的价值”, 但是这里的项指的是一类……. 所以每一类的价钱要分开统计……然后就是普通的01背包了…. 这种题太坑了,描述不

2018-03-15 20:46:23 192

原创 HDU 2639 Bone Collector II 【01背包的第k优解】

传送门 // 题意: 就是求在01背包的第k优解.// 思路: 为了存第几优解, 我们需要再加一维表示当前是第优解, 即dp[i][j] 代表 背包容量为 i 时, 第 j 优解的价值是多少, 那么我们更新的时候就要再加一个for循环, 那就是for第几优解, 然后把当前的值和一个新的可以被更新的值全部保存下来, 去重后再按照从大到小的顺序再次分配回去即可…… 实际上就是第2优解有可能是...

2018-03-13 11:02:56 285

原创 UESTC 1830 秦对长的猜想 【哥德巴赫猜想】

传送门任何一个大于等于6的整数都能写成三个质数的和现给你一个N,请你构造三个质数x,y,z.使得x+y+z=N.思路: 就是哥德巴赫猜想啦, 任意一个大于等于4的偶数都可以写成两个质数之和. 那么如果n是偶数, n-2也是偶数, n是奇数, n-3也是偶数, 所以就刚好满足条件啊, 然后就可以直接算啦,从两边同时找i 和 n - i都是质数的情况输出即可啦 …….看似复杂度n/2*√n...

2018-03-12 21:47:35 262

原创 CF469 div2 D 题 找规律

传送门 // 题意: 按照题目的意思进行模拟, 最后有q次询问, 每次询问第x个位置上的元素是谁…思路: (其实看这个n的范围就知道是找规律, 然后在一看q2e5多半就是qlogn的复杂度,所以尽量往折半上面想)首先奇数位置上面的数字就不用说了, 他们不会动的, 就是初始的数即(p+1)/2, 那么对应偶数上的位置了? 我们写几个看一看.. n=3 1 3 2 n=

2018-03-12 19:32:31 359

原创 CF 470 div2 B - D 题解.

传送门 B: 题意: 两个人轮流玩游戏, 首先有一个x0 >= 3, 然后A先手,第 i 轮每个人选择一个小于X(i-1)的素数然后算出这个素数的倍数并且离x(i-1)最近的那个数作为xi, 现在给定x2,问最小的x0是多少.思路: 首先我们可以通过算出x2的素因子得出x1的范围, 因为要范围尽量的大, 也就是包含的情况尽量的多, 那么肯定选择最大素因子, 对于一个数N, 最大素因子为P(N

2018-03-12 19:09:51 283

原创 喵喵喵???

这是一条并不明显的分界线~~~

2018-03-11 21:00:34 1574

原创 HDU 2159 FATE 【二维费用完全背包】

传送门 // 题意: 有k种怪物. 告诉你每种怪物杀死以后有a点经验值, 同时主人的忍耐度减少b, 并且他最多杀死s只怪物, 问能否到达n点经验值, 如果能到达输出最多可能剩余多少忍耐度.// 思路:乍一看就是个完全背包, 但是有s数量的限制, 所以就不是单纯的一维了, 所以我们往二维上面想, 其实想一想就知道s可以作为第二维, 表示没次杀死一只怪物后同时受到两种伤害, 即b 和 1, 那么...

2018-03-11 19:40:46 220

原创 CF 355 div2 C, D 题解 【很好的两道脑洞题】

传送门 C: 给定一个n的n个数的一个排列, 每次操作可以将一个数放在序列的最前面或者最后面, 问把这个序列变成1 2 3….n 的这样一个排列.思路: 我们首先必须要看出一个事实, 那就是我们每次选择一些不在对应位置上的的这些数按顺序的放前面或者放后面使得最后这个序列都是我们要的这个序列,那么要最少, 我们就要找一个最长上升加一子序列, 那么我们要这些不动, 剩下全部按照顺序的放一定可以得到,

2018-03-11 17:16:25 407

原创 洛谷 1142 轰炸 【判断点是否在同一条直线上】

传送门 // 思路: 就是问最多有多少个点在同一条直线上.思路:肯定联想到用斜率或者向量的形式来求呀, 所以我们用向量方便一点, 我们任取两个点作为基准点, 算出一个向量(x1, y1), 然后枚举第三个点, 算第二个点和第三个点的之间的向量, 然后通过判断向量是否平行的方式来判断这三点是否处于同一直线上, 也就是 x1*y2 == x2*y1…. 复杂度O(n^3), 这题数据弱让我卡过去了,

2018-03-11 15:53:11 752

原创 2015 年 蓝桥杯 A 组 C/C++ 第十题 灾后重建 【最小生成树 + LCA倍增 + 线段树维护区间max】

交题地址 详细复杂度做法解释 这是hard版本的. AC Codeconst int maxn = 5e4+5;const int maxm = 2e5 + 5;int up[maxn][23], maxx[maxn][23];int deep[maxn], dis[maxn];int cnt, head[maxn];int n, m, q;struct node { in

2018-03-11 15:29:11 1323

原创 HDU 1561 The more, The Better 【树形dp + 依赖性01背包 】这类型入门题.

传送门 // 题意: 这里有n座城堡, 每座城堡有一个价值并且他们之间有一定的联系, 即如果你要攻守b城堡, 它又被a城堡所保护, 那么你必须先攻守掉a城堡, 问最多攻破m座城堡的条件下, 能获得的最大价值是多少.// 思路: 这是一个背包九讲中所提到到的依赖性背包, 即如果你要选择某件物品, 则必须先选择其他物品, 因为每座城堡就是攻与不攻的区别所以是个依赖性01背包, 但是又是在图中, ...

2018-03-10 22:16:15 248

原创 HDU 2955 Robberies 和 HDU 1203 I NEED A OFFER!【思维转化 + 01背包】好题 !!!

这两道题非常相似, 思维和处理方式, 都是好题, 所以就放在一起说了…. HDU-2955 这一道要经典一些. // 题意: 有n家银行, 每家银行对应着一个被抓的概率, 并且给出它能忍受的最低被抓概率, 问这个人最多可以抢多少钱.// 思路: 原先以为只会精确到小数点后两位, 傻逼的就敲了, 后面才意识到是个浮点数, 没说是几位啊, 所以我们有两个问题要解决, 1:浮点数不好作为背包容...

2018-03-10 22:15:07 171

原创 HDU 1114 Piggy-Bank 【求最小值的完全背包】

传送门 // 题意: 给定一个存钱罐的空体积和装满前的体积, 给定n种硬币的价值以及体积, 问能否刚好把存钱罐装满, 并且装满后的存钱罐最少的钱是多少, 其中n种硬币可以用任意次.思路: 任意次就是完全背包, 然后要恰好装满, 那么dp初始或还是为inf(因为这求的是最小值), dp[0] = 0, 然后max 改成 min 即可…….AC Codeconst int maxn = 5e2+5;

2018-03-10 19:48:58 275

原创 CCCC 题目集 L3 001 凑零钱 【背包 + 记录路径 + 思维】

传送门 // 题意: 给定n枚硬币的价值, 给出一个容量m, 问能否恰好在这n个中选择一些硬币使得其价值和加起来等于m, 并输出你选择的这些硬币的价值, 如果有多种选择, 输出字典序最小的那种.思路: 首先肯定是01背包没错, 但是同时我们要注意几个点, 一个是要恰好构成, 所以dp初始化时除0外都初始化为-inf, dp[0] = 0. 也就是恰好装满背包的最优解. 同时更新的是还要同时记...

2018-03-10 16:44:13 517

原创 卢卡斯定理

对于这种问题C(n, m) % p, n, m, p 都比较大的, 就要用卢卡斯定理了, 但是这里又分了两种情况, 一种是n, m 在1e6以内的, 并且case比较多的, 那么我们每次取调用卢卡斯肯定会T的, 所以我们要做的就是朴素的算就是了, 也就是直接调用组合数公式, 这个时候我们只要先预处理好1e6以内的带mod阶乘就行啦…. 类似于离线求const int maxn = 1e5+5;ll

2018-03-10 12:28:41 763

原创 HDU --- 5446 Unknown Treasure 数论综合【Lucas定理 + 中国剩余定理 + 快速乘 + 思维】

传送门 //题意: 给出n,m,k. 下一行给出k个质数. 求Cmnmod∏piC_n^m mod\prod p_i. //一看n,m的范围都很大, mod的数也很大, 那么肯定不是简单的做法, 首先需要分析题意有 所以X就是我们要求的值, 我们可以发现等式右边我们可以用Lucas算出每一个具体的值, 然后得到了一系列类似于同余方程的方程组, 然后应用中国剩余定理求解出这些方程组就可以得

2018-03-10 12:14:54 262

空空如也

空空如也

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

TA关注的人

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