A:水题,先排序,有相连的输出2,否则输出1. #include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define mkp make_pair #define pb push_back #define fi first #define se second typedef long long ll; const int INF=0x3f3f3f3f; int q,n; ; int a[maxn]…
(点击此处查看原题) 题意分析 给出一个数n,求一个数m,使得m >= n ,并且m 满足: m = ∑ 3 ^ i * x (x = 0 或者 x = 1 ),求出满足条件的最小的m 解题思路 两个题目都是一个题意,只是n的大小不同,所以就不用两个思路了 注意到,我们可以先令 m = ∑ 3 ^ i ,求出此时满足条件的最小的m,随后,因为m在三进制下,每一位都是1,那么如果我们从高位开始,不断地判断 m - 3 ^ i >= n ,如果满足,则令 m -= 3 ^ i ,此时我们删除了当前…
(点击此处查看原题) 题意说明 有n个区间,第i个区间覆盖范围[li,ri]内所有点,问删除最少哪些区间,使得所有点被区间覆盖的次数少于等于k次 解题思路 看到这个题的时候,觉得和开关(反转)问题很像,从左到右,每次尽量满足当前点需要满足的条件,二者的区别在于这个题目对同一个点的操作次数可能不止一次 这时候,我们就需要考虑这样的问题:如何让当前点x满足条件的同时,让右边的点x+1,x+2,...删除最少的区间以满足条件,答案很显然,我们每次删除覆盖x的区间中ri最大者,直到覆盖当前点x的区间数小…
The only difference between easy and hard versions is constraints. There are nn kids, each of them is reading a unique book. At the end of any day, the ii-th kid will give his book to the pipi-th kid (in case of i=pii=pi the kid will give his book to…
题目传送门 A .Yet Another Dividing into Teams sol:原先是用比较复杂的方法来解的,后来学弟看了一眼,发现不是1就是2,当出现两个人水平相差为1就分成两组,1组全是奇数,1组全是偶数,必然符合题意. 思维 #include "bits/stdc++.h" using namespace std; #define debug puts("what the fuck"); typedef long long LL; typedef p…
一般搜索 注意:一般定义成void Books Exchange (easy version)  CodeForces - 1249B2 The only difference between easy and hard versions is constraints. There are nn kids, each of them is reading a unique book. At the end of any day, the ii-th kid will give his book…
先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要消耗 CPU 也不难,写一个大循环就可以了: for i = 0 to 1000000000 end 但这和 Sleep 并无本质区别.对方究竟有没有运行,我们从何得知? 所以,我们需要一个返回结果 -- 只有完整运行才有正确答案. result = 0 for i = 0 to 100000000…
题目原文: Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Each input file contains one test case. Each case contains a pair of i…
点题号就能查看题解了,另外代码也放在了开源中国码云上: 甲级:代码集合:https://git.oschina.net/firstmiki/PAT-Advanced-Level-Practise 1001. A+B Format (20) 乙级:…
题目大意:有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案. 题解:看到数据范围第一个想到的就是dp.但5^15显然不现实.注意到ci相等的颜色本质上是相同的,于是可以记忆化搜索. 时间复杂度:O(15^5) 代码: #include<iostream> #include<cstdio>…
题目大意:给定一个长度为n的整数序列x[i],确定一个二元组(b, k)使得S=Σ(k*i+b- x[i])^2(i∈[0,n-1])最小 看Claris大神的题解就行了.实际上就是用2次二次函数的性质. http://www.cnblogs.com/clrs97/p/4703437.html 代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; inline cha…
纸箱堆叠 (1s 128MB) box [问题描述] P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n, p, a 之后,即可自动化生产三边边长为 (a mod P, a^2 mod p, a^3 mod P) (a^4 mod p, a^5 mod p, a^6 mod P) .... (a^(3n-2) mod p, a^(3n-1) mod p, a^(3n) mod p) 的n个纸箱.在运输这些纸箱时,为了节约空间,必须将它们嵌套堆叠起来. 一个纸箱可以嵌套堆叠进另一个纸箱…
水平可见直线 (1s 128M) lines [问题描述] 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的. 例如,对于直线: L1:y=x; L2:y=-x; L3:y=0 则L1和L2是可见的,L3是被覆盖的. 给出n条直线,表示成y=Ax+B的形式(|A|,|B|<=500000),且n条直线两两不重合.求出所有可见的直线. [输入格式] 第一行为N(0<N<50000),接下来的N行…
游走(2s 128MB)walk [问题描述] [输入格式] [输出格式] [样例输入] 3 3 2 3 1 2 1 3 [样例输出] 3.333 [样例说明] 题解: 主要算法:贪心:高斯消元: 题意是给一个简单无向连通图,给每条边赋上权值,使期望值最小 贪心让被走到概率大的边的权值小,就可得到最小的期望值 设每个点被走到的概率为p, 出度为d 那么p[i] = Σ p[j] / d[j] (i,j 之间有连边) (从 j 出发选到 i 与 j 连边的概率为 1 / d[j]) 移项得 Σ p…
免费道路(1s 128MB)roads [输入样例] 5 7 21 3 04 5 13 2 05 3 14 3 01 2 14 2 1 [输出样例] 3 2 04 3 05 3 11 2 1 题解: 主要算法:生成树: 题意即为求一棵刚好拥有k条鹅卵石路的生成树 那么我们先将所有水泥路加入图中 就可以知道必须要加入的鹅卵石路 将这些边加入新树中 接下来再随意地按树的结构加入至k条鹅卵石路 并再更加随意按树结构加水泥路至连通 那么就得到了合法方案 判断过程中无解的情况: 1.所有边加入都无法连通…
灵魂宝石(1s 128MB)soulgem [问题描述] "作为你们本体的灵魂,为了能够更好的运用魔法,被赋予了既小巧又安全的外形" 我们知道,魔法少女的生命被存放于一个称为灵魂宝石(Soul Gem)的装置内.而有时,当灵魂宝石与躯体的距离较远时,魔法少女就无法控制自己的躯体了.在传说中,魔法少女Abel仅通过推理就得到了这个现象的一般法则,被称为Abel定理:存在宇宙常量R(是一个非负实数,或正无穷),被称为灵魂宝石常量,量纲为空间度量(即:长度).如果某个魔法少女的灵魂宝石与她的…
防线修建(1s 512MB)defense [问题描述] 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于A国的经费有限,所以希望你能帮忙完成如下的一个任务: 1.给出你所有的A国城市坐标 2.A国上层经过讨论,考虑到经济问题,决定取消对i城市的保护,也就是说i城市不需要在防线内了 3.A国上层询问对于剩下要保护的城市,修建防线的总经费最少是多少 你需要对…
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼.. b - a ≤ 100000 是关键. 类似素数筛的方法: 1.初始化vis[]=0 ; 2.素数的倍数vis[]=1; 3.  b较小时,素数筛解决   b很大时,素数筛的vis[]会MLE,此时用vis2[i-a]保存vis[i]就不会MLE 了.. #include<iostream>…
求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id=1199 Problem B: 大小关系 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 148  Solved: 31[Submit][Status][Web Board] Description 当我们知道一组大小关系之后,可判断所有关系是否都能成立…
题意:求f(n)=1/1+1/2+1/3+1/4-1/n   (1 ≤ n ≤ 108).,精确到10-8    (原题在文末) 知识点:      调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)       f(n)≈ln(n)+C+1/2*n       欧拉常数值:C≈0.57721566490153286060651209       c++ math库中,log即为ln. 题解: 公式:f(n)=ln(n)+C+1/(2*n); n很小时直接求…
人生第一场正式OI [序] 2016-12-04 见底部 [Day -1] 2016-11-17 期中考试无心插柳柳成荫,考了全市第2班里第1(还不是因为只复习了不到两天考试),马上请了一个周的假准备NOIP(数学生物还是回去上课的) 灰哥跟我一块,tlq考吃了没请假 正好下个周老班出去学习了不害怕 星期4所有人都请假了,漫无目的地复习了一天题,参考题解补了一场模拟赛 晚上灰哥因为住宿直接回家了,还让我给XXX送纸条(不是都有小马了嘛) SD NOIP的群好多人直播,我们就直播了个国际象棋(竟然…
4453: cys就是要拿英魂! Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 90  Solved: 46[Submit][Status][Discuss] Description pps又开始dota视频直播了!一群每天被pps虐的蒟蒻决定学习pps的操作技术,他们把pps在这局放的技能记录了下 来,每个技能用一个字符表示.经过研究,蒟蒻们发现字典序更大的连招威力更大.于是所有蒟蒻都想学习pps最 强的连招.但是他们太弱了,不能学会整个视频里的…
Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINT 题解: 一脸容斥的样子. 枚举判断是否相同的泉水集合S,若|S|>=K,则inc(ANS,(-1)^(|S|-K+1)*C(|S|,K)*相同对数). 用哈希表记录.判断(我之前竟然写了类似字符串哈希的的做法,哈希值相同直接判断相同,WA惨了). 代码: var i,j,k,l,n,m:longint…
灾难(1s 128MB)catas [样例输入] 5 0 1 0 1 0 2 3 0 2 0 [样例输出] 4 1 0 0 0 题解: 主要算法:拓扑排序:最近公共祖先(Lca): 先跑出拓扑序 我们按拓扑序建立一棵"灭绝树" 灭绝树含义是当一个点灭绝时,它的子树将会全部灭绝 所以答案就是点在灭绝树中的子树大小 一个点如果灭绝,那么需要所有指向它的点灭绝 由于拓扑序的关系,指向它的点已经加入过了"灭绝树"中 所以这个点要灭绝,就需要所有指向它的点全部灭绝,即这些点的…
消耗战(2s 512MB)repair [问题描述] 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望.已知在其他k个岛屿上有丰富能源,为了防止敌军获取能源,我军的任务是炸毁一些桥梁,使得敌军不能到达任何能源丰富的岛屿.由于不同桥梁的材质和结构不同,所以炸毁不同的桥梁有不同的代价,我军希望在满足目标的同时使得总代价最小. 侦查部门还发现,敌军有一台神秘机器.即使…
征途(1s 256MB)journey [问题描述] Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路必须在同一天中走完. Pine希望每一天走的路长度尽可能相近,所以他希望每一天走的路的长度的方差尽可能小. 帮助Pine求出最小方差是多少. 设方差是v,可以证明,v×m^2是一个整数.为了避免精度误差,输出结果时输出v×m^2. [输入格式] 第一行两个…
Gate Of Babylon (1s 128MB) babylon [问题描述] [输入格式] [输出格式] [样例输入] 2 1 10 13 3 [样例输出] 12 [样例说明] [数据范围] 题解: 主要算法:快速幂:lucas定理:组合数:Dfs:容斥原理: 答案为全部没有限制的方案-有一个超过限制的方案数+有两个超过限制的方案数-有三个超过限制的方案数······ 解释一下: 我们先算出所有的方案数,减去每一种超级神器超过限制的方案 而这其中有同时两种神器都都不满足条件的方案 这种方案…
最大半连通子图 (1.5s 128MB) semi [问题描述] 一个有向图G = (V,E)称为半连通的(Semi-Connected),如果满足:∀ u, v ∈V,满足u->v 或 v -> u,即对于图中任意两点u,v, 存在一条u到v的有向路径或者从v到u的有向路径. 若满足,则称G'是G的一个导出子图. 若G'是G的导出子图,且G'半连通,则称G'为G的半连通子图. 若G'是G所有半连通子图中包含节点数最多的,则称G'是G的最大半连通子图. 给定一个有向图G,请求出G的最大半连通子…
最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了. [输入格式] 第一行包含两个数,n和m,其中1<=n<=100; 1<=m<=1000; 表示该无向图的节点数和边数.每个节点用1~n的整数编号.接下来的m行,每行…
分金币(1s 128M)  coin [问题描述] 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. [输入格式] 第一行为整数n(n>=3),以下n行每行一个正整数,按逆时针顺序给出每个人拥有的金币数. [输出格式] 输出被转手金币数量的最小值. [样例输入] 4 1 2 5 4 [样例输出] 4 [样例说明] 设四个人编号为1,2,3,4.第3个人给第2个人2个金币(变成1,…