07 2018 档案

摘要:7.29NOIP模拟赛 T1 YSG (1s,64MB,ysg.in,ysg.out) 描述 ysg,yxy,azw 三人正在刷题。 他们每做一题的时间都是一个有理数。 如果在某一时刻,三人同时做完一道 题,那么,他们会开始谈笑风生。 现在,他们想知道,从时刻 0 开始,至少要等多久才能谈笑风生。 阅读全文
posted @ 2018-07-29 19:33 yjk 阅读(199) 评论(0) 推荐(0) 编辑
摘要:抢掠计划 题目链接 比较水的缩点模板题,Tarjan缩点,重新建图,记录联通块的钱数、是否有酒吧 DAG上记忆化搜索即可 阅读全文
posted @ 2018-07-27 21:22 yjk 阅读(134) 评论(0) 推荐(0) 编辑
摘要:倒水 题目链接 显然,2^x个杯子里的水可以倒在一个杯子里 所以我们可以贪心地每次将N中最大的2^x减掉 减k次(若中途已经为0,直接输出0) 若大于0,用最小的比N大的2^x减剩下的N,即为答案 阅读全文
posted @ 2018-07-27 21:17 yjk 阅读(112) 评论(0) 推荐(0) 编辑
摘要:运 【问题背景】 zhx 和妹子们玩数数游戏。 【问题描述】 仅包含 4 或7 的数被称为幸运数。 一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列。 两个子序列被定义为不同的当且仅当其中的元素在原始序列中的下标的集合不 相等。 对于一个长度为N的序列, 共有2^N个不同的子序列 阅读全文
posted @ 2018-07-26 16:10 yjk 阅读(176) 评论(0) 推荐(0) 编辑
摘要:通往奥格瑞玛的道路 题目链接 这道题好像和电话线是同一道题。。 二分答案(答案一定是某一顶点的花费),spfa求最小血量消耗 阅读全文
posted @ 2018-07-26 15:31 yjk 阅读(147) 评论(0) 推荐(0) 编辑
摘要:银河英雄传说 题目链接 并查集时记录下以i为首的队列的长度(如果存在这个队列)num[i],便于合并, 和点i到队首的距离front[i],便于查询(在find时维护) 阅读全文
posted @ 2018-07-26 15:26 yjk 阅读(155) 评论(0) 推荐(0) 编辑
摘要:黑匣子 题目链接 看到题解中“维护两个堆”,突然想到了这道题的解法 维护两个堆:大根堆h1, 小根堆h2 大根堆里的是最小的i个值,小根堆里是剩下的值 每Add一个值时 插入到小根堆中, 再比较小根堆的最小值与大根堆的最大值 若h2.top()<h1.top() 将两个元素取出,换一下再放进去 需要 阅读全文
posted @ 2018-07-26 15:15 yjk 阅读(167) 评论(0) 推荐(0) 编辑
摘要:末日的传说 题目描述 n位数最多构成n*(n-1)/2个逆序对 首先二分答案求出需要改动的位数k最少是多少 将前面不需要改动的位输出 再算一下构成(k-1)*(k-2)/2个逆序对后还剩多少逆序对 若剩x,就将剩下的数中第x大的数先输出,这样就又构成的x个逆序对 剩下的数倒序输出 少用long lo 阅读全文
posted @ 2018-07-24 18:39 yjk 阅读(152) 评论(0) 推荐(0) 编辑
摘要:集合 题目链接 显然,我们是要把数据先排序的, 然后从大到小枚举每个数,看是否能选上, 能选就选,不能拉倒 若能,二分查找a[i]/k,若查找成功,ans++ 将a[i]/k标记为不能选择 最后输出答案即可 (从小到大枚举会爆long long) 阅读全文
posted @ 2018-07-24 17:54 yjk 阅读(175) 评论(0) 推荐(0) 编辑
摘要:路标设置 题目链接 此题和跳石头很相似,都是二分答案,模拟判断是否可行 阅读全文
posted @ 2018-07-24 17:47 yjk 阅读(221) 评论(0) 推荐(0) 编辑
摘要:排行榜 题目链接 看到题解中一个很巧妙的做法: 先确定SAME的位置, 将DOWN的按输入顺序从上往下输出 再将UP的接着从上往下输出 这样便可以保证DOWN的人名次一定下降了 UP的人名次一定上升了 阅读全文
posted @ 2018-07-24 17:42 yjk 阅读(790) 评论(0) 推荐(0) 编辑
摘要:在农场万圣节Trick or Treat on the Farm 题目链接 题解:首先,将原图缩点,变为DAG, 然后在DAG上记忆化搜索即可 阅读全文
posted @ 2018-07-24 16:53 yjk 阅读(165) 评论(0) 推荐(0) 编辑
摘要:低价购买 题目链接 n<=5000 n^2的算法是可以接受的 第一个数字显然是求最长下降子序列,可以n^2或nlognDP 要求方案数,可以在n^2算法中做一些修改,DP求方案数 dp[i]表示以第i个数为结尾的最长下降子序列 f[i]表示以第i个数为结尾的最长下降子序列的个数 当a[j]<a[i] 阅读全文
posted @ 2018-07-24 16:48 yjk 阅读(164) 评论(0) 推荐(0) 编辑
摘要:P1363 幻想迷宫 显然,若从原图中起点走到相邻的图中对应的“起点”位置 ,就可以无限走下去, 若一个点从原图中可以到达,到了非原图中也可以到达,就可以无限走下去 我们不妨记录下当前到达的x,y坐标,同时也记录下在%n,%m下的坐标, int vis[x][y][3]; x,y表示在%n,%m下的 阅读全文
posted @ 2018-07-24 16:03 yjk 阅读(194) 评论(0) 推荐(0) 编辑
摘要:XOR的艺术 题目链接 用线段树维护sum, 修改时 tag[p]^=1; sum=r-l+1-sum; 详见代码 三倍经验: 开关 光开关 去掉build即可 阅读全文
posted @ 2018-07-24 15:30 yjk 阅读(139) 评论(0) 推荐(0) 编辑
摘要:贪婪大陆 题目链接 对于一个区间[l,r],右端点在l左边即[1,l-1]中的区间与区间[l,r]没有交集, 左端点在r右边即[r,n]中的区间与区间[l,r]没有交集, 其余区间必与[l,r]有交集, 因此维护两个树状数组,一个维护从1开始右端点的数量, 另一个维护从n开始左端点的数量,插入时取值 阅读全文
posted @ 2018-07-24 15:25 yjk 阅读(173) 评论(0) 推荐(0) 编辑
摘要:小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 阅读全文
posted @ 2018-07-24 15:06 yjk 阅读(138) 评论(0) 推荐(0) 编辑
摘要:玉米田Corn Fields 题目链接 此题和互不侵犯状压DP的做法类似 f[i][j]表示前i行,第i行种植(1)/不种植(0)构成的二进制数为j时的方案数 首先我们可以预处理出所有一行中没有两个相邻的1的二进制数 然后进行暴力的DP 阅读全文
posted @ 2018-07-24 14:55 yjk 阅读(141) 评论(0) 推荐(0) 编辑
摘要:雷涛的小猫 题目链接 n^2DP比较好想, f[i][j]表示第i棵树高度为j的最大收益 直接从上到下转移即可,每次记录下max f[1~n][j] 用于下面的转移 f[i][j]=max(f[i][j-1],max(f[1~n][j-Delta])) max(f[1~n][j-Delta])是已经 阅读全文
posted @ 2018-07-24 14:55 yjk 阅读(146) 评论(0) 推荐(0) 编辑
摘要:侦探推理 题目链接 这是一道恶心至极的模拟题 我们可以枚举罪犯是谁,今天是星期几,从而判断每个人说的话是真是假 若每个人说的话的真假一致,且说谎话的人数<=k且说真话的人数<=m-k,就是一个符合的方案 而此题的精髓在于字符串的处理! 要知道每句话的末尾会有一个空格(为此爆到30分) 以及以下坑点: 阅读全文
posted @ 2018-07-24 14:41 yjk 阅读(173) 评论(0) 推荐(1) 编辑
摘要:删数 题目链接 删数 题目链接 删数 题目链接 一道裸的区间DP,f[l][r]表示剩下区间[l,r]时的最大价值 可以由f[1~l-1][r]和f[l][r+1~n]转移过来 详见代码: 1 #include<algorithm> 2 #include<iostream> 3 #include<c 阅读全文
posted @ 2018-07-24 14:26 yjk 阅读(176) 评论(0) 推荐(0) 编辑
摘要:产生数 题目链接 本着“水题不可大做”的原则,我直接字符串hash+爆搜,成功爆栈。。 我们发现,依次搜索每一位能取到的数字个数,最后乘起来即可(乘法原理) 然后又爆了一个点。。 long long存不下!! 于是我面向数据编程,看到输出的数后面有很多0 就产生了这个神奇的骗分做法 阅读全文
posted @ 2018-07-24 14:22 yjk 阅读(429) 评论(0) 推荐(0) 编辑
摘要:矩阵取数游戏 题目链接 每行分别跑一趟区间DP即可 这道题区间DP是非常裸的,按套路来即可 但是很毒瘤的是需要高精度, “我王境泽就是爆零,从这跳下去,也不会用__int128的!” 阅读全文
posted @ 2018-07-24 14:14 yjk 阅读(176) 评论(0) 推荐(0) 编辑
摘要:火柴排队 题目链接 ∑(ai​−bi​)^2=∑ai^2-2*∑ai*bi+∑bi^2 显然∑ai^2+∑bi^2是不变的,我们要让 2*∑ai*bi最大,才能使原式最小 然后我们一眼就可以看出来, 当第i大的ai与第i大的bi一一对应时,∑ai*bi最大 反正我不会证 知道了对应关系后,于是就成了 阅读全文
posted @ 2018-07-24 14:03 yjk 阅读(126) 评论(0) 推荐(0) 编辑
摘要:P1341 无序字母对 题目链接 根据题意,只有在每两个相邻的字母都构成一个要求的无序字母对时,才能满足要求, 我们不妨将每个字母看成一个节点,每个无序字母对看成一个无向边, 我们要从一个点出发,不重复地走完所有的边, 所走的路径上的点构成的字符串即为一个合法的解 这就转化成了求一条字典序最小的欧拉 阅读全文
posted @ 2018-07-24 13:47 yjk 阅读(232) 评论(0) 推荐(0) 编辑
摘要:高低位交换 题目链接 这道题非常水,我是用位运算做的 a=n>>16 二进制的“高位”b=n-(a<<16) 二进制的“低位”ans=(b<<16)+a 转换 阅读全文
posted @ 2018-07-24 13:05 yjk 阅读(137) 评论(0) 推荐(0) 编辑
摘要:数字三角形 题目链接 4 16 3 1 2 43 1 2 4 (3+1) (1+2) (2+4)(3+1+1+2) (1+2+2+4) (3+1+1+1+2+2+2+4)16=1*3+3*1+3*2+1*4 首先,我们可以发现每个数字被加上的次数是一个杨辉三角形的一行 利用公式C(n,i)=(n-i 阅读全文
posted @ 2018-07-18 22:11 yjk 阅读(200) 评论(0) 推荐(0) 编辑
摘要:迎春舞会之数字舞蹈 题目链接 一道奇怪的模拟题, 先将样例输出复制下来,观察观察 将数字从上到下分成5个部分分别模拟 阅读全文
posted @ 2018-07-17 21:30 yjk 阅读(127) 评论(0) 推荐(0) 编辑
摘要:向右看齐 题目链接 此题可用单调栈O(n)求解 维护一个单调递减栈,元素从左到右入栈 若新加元素大于栈中元素,则栈中元素的仰望对象即为新加元素 每次将小于新加元素的栈中元素弹出,记录下答案 阅读全文
posted @ 2018-07-17 21:24 yjk 阅读(170) 评论(0) 推荐(0) 编辑
摘要:联合权值 题目链接 首先,直接两重循环暴力枚举得了70分 然后发现第二重循环可以记忆化一下 记忆一下每个点的子节点的权值和、最大值、 次大值(为了处理该点的父节点权值恰好为最大值) 具体看代码 阅读全文
posted @ 2018-07-17 21:17 yjk 阅读(122) 评论(0) 推荐(0) 编辑
摘要:寻找道路 题目链接 这道题非常的水,按照题意, 先反向建边,从终点搜索,标记出可以到达终点的点 然后枚举一遍,判断出符合条件1的点 再从起点搜索一遍就可以了 阅读全文
posted @ 2018-07-17 21:09 yjk 阅读(132) 评论(0) 推荐(0) 编辑
摘要:最优贸易 题目链接 看题解后感觉分层图好像非常NB巧妙 建三层n个点的图,每层图对应的边相连,权值为0 即从一个城市到另一个城市,不进行交易的收益为0 第一层的点连向第二层对应的点的边权为-w[i],表示买入的收益 第二层的点连向第三层对应的点的边权为w[i],表示卖出的收益 这样跑一遍最长路,就可 阅读全文
posted @ 2018-07-17 21:04 yjk 阅读(130) 评论(0) 推荐(0) 编辑
摘要:宝藏 题目链接 首先,打了一个prim,得了45分 然后看到题解里状压DP、模拟退火什么玩意的。。 模拟退火我是不会的 不过随机化什么的好像可以骗一下分 于是将代码改了一点 很迷的是上面代码的复杂度巨大 然后发现一个很严重的问题 邻接表就跟吔了shi一样 我们将邻接表改成邻接矩阵, 又改了一下随机化 阅读全文
posted @ 2018-07-11 20:54 yjk 阅读(176) 评论(0) 推荐(0) 编辑
摘要:愤怒的小鸟 题目链接 本来是刷状压DP的,然而不会。。 搜索是比较好想的,直接dfs就行了 我们可以知道两只猪确定一条抛物线 依次处理每一只猪,有以下几种方法: 1.先看已经建立的抛物线是否能打到这只猪 2.若1不可行,将这只猪与之前单着的猪配对,建抛物线 3.将这只猪单着,等待以后配对(若配不上, 阅读全文
posted @ 2018-07-11 16:43 yjk 阅读(88) 评论(0) 推荐(0) 编辑
摘要:最近学习了一下数位DP 感觉记忆化搜索是比较好理解的 这篇博客对我有一定的启发 https://www.cnblogs.com/zbtrs/p/6106783.html 总结了一下: 用数位DP的题目: 形如“问在x到y的整数中满足性质……的数的个数” 套路: main函数一般是这样的 设max为上 阅读全文
posted @ 2018-07-11 11:13 yjk 阅读(143) 评论(0) 推荐(0) 编辑
摘要:最接近神的人_NOI导刊2010提高(02) 用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数, 插入时树状数组单点加1即可 先排一遍序,从大到小插入所有数在原序列的位置, 统计每次插入时,在该元素前面元素的个数, 前面的元素是先插入的,比该元素大,而在序列中的位置靠前, 所以这个 阅读全文
posted @ 2018-07-04 09:06 yjk 阅读(260) 评论(0) 推荐(0) 编辑
摘要:手机号码 数位DP模板题 记忆化搜索: 阅读全文
posted @ 2018-07-04 08:56 yjk 阅读(233) 评论(0) 推荐(0) 编辑
摘要:【模板】割点 割点集合:一个顶点集合V,删除该集合的所有定点以及与这些顶点相连的边后,原图不连通,就称集合V为割点集合 点连通度:最小割点集合中的顶点数 边连通度:最小割边集合中的边数 割点:割点集合中唯一的一个元素 Tarjan求缩点: 一个点为缩点的条件: 1.该点为根,搜索树中有大于1个子树 阅读全文
posted @ 2018-07-04 08:43 yjk 阅读(149) 评论(0) 推荐(0) 编辑
摘要:受欢迎的牛 题目描述 一些可以当明星的牛,一定会构成一个强连通分量,我们可以先缩点,最后统计一下出度为零的强连通分量大小即可, 若出度为零的强连通分量个数大于1,则输出0 阅读全文
posted @ 2018-07-04 08:33 yjk 阅读(152) 评论(0) 推荐(0) 编辑
摘要:卢卡斯定理 把n写成p进制a[n]a[n-1][n-2]…a[0],把m写成p进制b[n]b[n-1][n-2]…b[0],则C(n,m)与C(a[n],b[n])*C(a[n-1],b[n-1])*C(a[n-2],b[n-2])*…*C(a[0],b[0])模p同余 阅读全文
posted @ 2018-07-04 08:07 yjk 阅读(166) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示