随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门题意:意思很简单,找一个最接近D且比D大的数,满足它的二进制表示下的1的个数在[S1, S2]之间分析:从D + 1开始,若个数小于S1,那么从低位向高位把0替换成1直到S1就是最小值,否则往更大的数去找,此时目标是减少1的数量,可以优化, +lowbit (D),因为+小于lowbit ...
阅读全文
摘要:题目传送门题意:已知每个人的独一无二的身高以及排在他前面或者后面比他高的人数,问身高字典序最小的排法分析:首先对身高从矮到高排序,那么可以知道每个人有多少人的身高比他高,那么取较小值(k[i], n - i - k[i]),若后者小于0则无解。然后可以理解为每个人前面要留出p + 1个位子给高个的人...
阅读全文
摘要:题目传送门 题意:线段树操作:1. 单点更新 2. 求区间的LCIS(longest consecutive increasing subsequence) 分析:注意是连续的子序列,就是简单的区间合并,记录线段的端点的值,如果rx[rt<<1] < lx[rt<<1|1]就区间合并,最后结果保存在
阅读全文
摘要:题目传送门题意:问最长子序列,满足区间最大值 - 最小值在[m, k]之间分析:用双端队列维护最大值和最小值,保存的是位置。当满足条件时,更新最大值。/************************************************* Author :Running_T...
阅读全文
摘要:题目传送门题意:从r走到a,遇到x多走一步,问最小走到a的步数分析:因为r有多个,反过来想从a走到某个r的最小步数,简单的BFS。我对这题有特殊的感情,去年刚来集训队时肉鸽推荐了这题,当时什么都不会,看个数组模拟队列的BFS看的头晕,现在看起来也不过如此,额,当年开始是从r走到a的,因为数据巨弱才过...
阅读全文
摘要:水 A - Kefa and First Steps /************************************************ * Author :Running_Time * Created Time :2015/9/23 星期三 00:19:33 * File Name
阅读全文
摘要:题目传送门题意:简单来说就是sn = sn-1 + sn-2递推而来,求其中所有c字符的:∑i#include #include #include #include #include using namespace std;typedef long long ll;const int N = 201...
阅读全文
摘要:数学A - Raising Bacteria分析:如果1 #include #include #include #include #include #include #include #include #include #include #include #include #include #inc...
阅读全文
摘要:题目传送门题意:POJ有中文题面分析:其实就是求一次同余方程组:(n+d)=p(%23),(n+d)=e(%28),(n+d)=i(%33),套用中国剩余定理模板代码:/************************************************* Author :...
阅读全文
摘要:题目传送门题意:很裸,就是求C (n, m) % (p1 * p2 * p3 * .... * pk)分析:首先n,m#include #include #include #include #include #include #include #include #include #include #...
阅读全文
摘要:题目传送门题意:给出线性排列的树,第一个数字是根节点,后面的数如果当前点小或相等往左走,否则往右走,查询一些点走的路径分析:题意略晦涩,其实就是排序二叉树!1#include #include #include #include #include #include #include #include...
阅读全文
摘要:题目传送门题意:给一张无向图,问存在多少(a, b)表示a点到b点经过的边值小于等于x ((a,b) 和 (b, a)属于不同的方案)分析:首先将边权值和查询x值升序排序,从前往后扫描边,累加从u和v两个集合各自选取一个组成(a, b)的方案数(u,v属于不同的集合),不能从一个集合选两个,因为同一...
阅读全文
摘要:题目传送门题意:有一张无向图,度数小于2的点会被去掉,直到全都大于等于2,问连通块顶点数为奇数的权值和为多少分析:首先DFS把度数小于2的vis掉,第二次DFS把属于同一个连通块的vis掉,检查是否为奇数个定点,是累加和。用sz[i]表示i点真实还连着的点的个数代码:/***************...
阅读全文
摘要:题目传送门题意:一人过生日,很多人排着队送礼物。排队顺序是礼物价值大的优先,如果相等先来的优先。有m次开门,当t个人到了会开门让p个人进门。最后一次让门外的所有人按顺序进门。有q次询问,问第x个进门的人的名字。分析:很明显的优先队列,首先交给队友做,结果写的搓,无限RE。没办法只能我上,因为要对字符...
阅读全文
摘要:题目传送门题意:一块木板按照某个顺序切成a[1], a[2]...a[n]的长度,每次切都会加上该两段木板的长度,问选择什么顺序切能使得累加和最小分析:网上说这是哈夫曼树。很容易想到先切掉最长的,反过来也就是相当于每次取最短的两块合并成一块,直到最后剩下原来的一块,优先队列实现代码:/*******...
阅读全文
摘要:题目传送门题意:一辆卡车要行驶L长度,初始有P油,每行驶一个单位长度消耗一单位油。有n个加油站可以加油,问最少加油几次才能行驶L长度,如果不能输出-1分析:按照挑战书的解法,每走到一个加油站相当于获得一次加油的权利,等到油没有的时候再选择之前可加油的站的最大油量加上,可以用优先队列高效得到最大值,如...
阅读全文
摘要:题目传送门题意:可以交换两个相邻的数字顺序k次,问最后逆序对最少有多少分析:根据逆序数的定理如果逆序数大于0,那么必定存在1#include #include #include #include #include #include #include #include #include #includ...
阅读全文
摘要:Problem Statement Cat Noku has just finished writing his first computer program. Noku's computer has m memory cells. The cells have addresses 0 throug
阅读全文
摘要:水A - Multiplication Table不要想复杂,第一题就是纯暴力代码:#include #include #include #include using namespace std;const int N = 1e5 + 10;const int INF = 0x3f3f3f3f;in...
阅读全文
摘要:题目传送门题意:给你一棵树,树上的每个节点都有树值,给m个查询,问以每个点u为根的子树下有多少种权值恰好出现k次。分析:首先要对权值离散化,然后要将树形转换为线形,配上图:。然后按照右端点从小到大排序,离线操作:将每一个深度的权值分组到相同权值的cnt中,当sz == k时,用树状数组更新+1,表示...
阅读全文