思维题
YYyyCCCcccBb
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
51nod-1315 合法整数集
1315 合法整数集题目来源: TopCoder基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注一个整数集合S是合法的,指S的任意子集subS有Fun(SubS)!=X,其中X是一个固定整数,Fun(A)的定义如下:A为一个整数集合,设A中有n个元素,分别为a0,a1,a2,...原创 2016-11-03 21:45:31 · 400 阅读 · 0 评论 -
江学院-Problem K: qwb与小数
思路:a*10 /b 是当前小数点位上的数字快速幂 直接求比赛的时候好迷啊,最后一个小时搞的。感觉思路没错,但是我把每一位都存下来了,在求循环节。迷之RE,改完map TLE。#include #includeusing namespace std;typedef long long ll;ll a,b,n;ll quick(ll n,ll m){ ll原创 2017-06-02 17:16:19 · 315 阅读 · 0 评论 -
1479 Problem C 勤劳的ACgirls
Problem C: 勤劳的ACgirlsTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 78 Solved: 27[Submit][Status][Web Board]Descriptionzjc的ACgirls队的队员最近比较忙,为了能够取得更好的比赛成绩,他们制定了一个m天a掉n题的计划,a掉一题可以是这m天的任原创 2017-06-02 19:28:58 · 473 阅读 · 0 评论 -
hdu 6130 Kolakoski
题意:对于第一个串的数字,就是第二个串数字的数字数量。只有1和2#include #include #include using namespace std;const int N = 10000005;short a[N];short b[N];void init(){ int cnt=2; a[1]=1,a[2]=2; int pre=1;原创 2017-08-16 13:06:29 · 189 阅读 · 0 评论 -
hdu 6058 Kanade's sum
题意:找到 l (1~n ) r(l~n)的第k大的和。思路:当时想明白了。没写对。。看了下别人代码。。模拟链表。先每次找到最小值,然后访问左侧和右侧,乘起来之后,更新左侧右侧指针。#include #include #include using namespace std;const int maxn=500005;int nxt[maxn],pre[max原创 2017-08-02 15:26:35 · 243 阅读 · 0 评论 -
HDU-6035 Colorful Tree(dfs序造树)
题意;每条路径的权值是:路径上经过的不同颜色节点的个数。询问各个点互达后的路径权值总和思路: 看了小半天才看懂。。。首先解释下官方题解的意思。对于所求的问题,可以转化为每种颜色对于答案可以贡献多少次值(颜色i对于在所有路径中出现了几次)。颜色i贡献次数=所有路径-路径中未出现颜色i的路径条数。之后把所有的颜色i相加即可。代码中;siz表示以当前节点为根,子树大小原创 2017-07-26 16:05:40 · 906 阅读 · 3 评论 -
hdu 6103 -Kirinriki
题意:找到两个不相交的子串,使其满足题中给定关系思路:将字符串从后往前逐次插入,这样可以每次移动以O1的时间复杂度算出新插入后的ans值,之后再从前往后插入。这样可以遍历到所有的可能情况#include #include #include #include using namespace std;const int maxn=20005;char s[maxn];i原创 2017-08-11 12:37:41 · 312 阅读 · 0 评论 -
有趣的异或
描述这是一个有趣的题,给你n个数,聪明的大家都知道从中挑出k个数的方案数是多少?(ps:当然不会考你这么简单的题)。现在我们按照如下规则产生A(k):1.从n个数中挑出k个数2.将这k个数作异或运算(S=a1^a2^..ak)3.将每一种可能的方案产生的S求和输入多组测试数据,以EOF结束程序。每组测试数据第一行包含一个数n(1 第二行包含n原创 2017-07-27 11:42:50 · 289 阅读 · 0 评论 -
hdu 6045 Is Derek lying?
题意:对于第一个人来说,是否满足条件中 如果第一个人得到X分,那么第二个人得到Y分。思路:先判断不同答案的个数。如果相同答案的个数是小于最小的一个人的得分,就需要使用不同的答案来补全,补全的时候注意:如果不同的个数可以同时补全两个人就YES否则NO如果相同答案的个数是大于等于最小的一个人的得分,就判断最多的得分和最小得分的差值,用不同的答案补全最多的人的得分#inc原创 2017-07-28 13:25:07 · 303 阅读 · 0 评论 -
HDU 5873 Football Games
题意:给出多个队伍比赛,询问是否合法思路:对于每个i位置来说,排序后,他必定前缀和大于i*i-i,因为如果在前i个中,必定也满足两两比赛得分的关系。这题输入是个坑啊。。直接输入T,不加while(cin>>t)就wa。。。之前多组样例都是直接走T。 #include #include #include #include using namespace std;const原创 2017-08-27 11:44:51 · 308 阅读 · 0 评论 -
HDU 5512 Pagodas
题意:给出n,a,b,每次可以从已经得到的数字选择两个做差或者和,询问奇数个还是偶数个思路:暴力打了个表,发现是以gcd(a,b)为等差的数组#include #include #include using namespace std;typedef long long LL;bool a[20005];int gcd(int x,int y){ if(x<原创 2017-08-30 13:55:25 · 206 阅读 · 0 评论 -
hdu6201 transaction transaction transaction
题意:从任意一点买书,到任意一点卖书,询问赚的钱最多为多少思路:对于每一个节点维护出两个值:1.在这个点买需要多少钱 -A[i]2.在这个点卖多少钱A【i】这样维护到树的顶点,必定得出了任意两点差价最大的值#include #include #include #include #include #include using namespace std;type原创 2017-09-11 10:58:34 · 279 阅读 · 0 评论 -
A - Assigning Workstations 2015-2016 Northwestern European Regional Contest
题意: 有若干个人的请求,有无数台机器,每个机器隔K秒就会自锁。询问如何安排才可以让这些人使用机器时,需要解锁的次数最少。输出节省的时间!!!思路:对于每个人的请求找到当前set里面最小的时间+k,如果可以则更改,若当前的时间比最小的时间+k都大,那么这个机器必定会锁上,set弹出。set里存放的是当前工作的人离开的时间#include #include #include原创 2017-10-09 12:24:24 · 363 阅读 · 0 评论 -
HDU 5573 Binary Tree
题意:对于给定的数字n,需要从二叉树中找到一条路径,使得路径上的编号 是+ 或者- 。 一直走m个点,使得和为n思路:对于给定的m个节点,我们从根一直向左走,最后一层 (第m层) 特判。具体操作:一直向左走, 假如数字为8 3 , 那么我们从1 -> 2 ->5 我们就可以得到pow(2,3) 为8 。但是如果不是8 是6 ,我们就可以改变1的正负号。当然如果是7呢。原创 2017-10-14 18:29:50 · 193 阅读 · 0 评论 -
UVALive 7501 Business Cycle(二分,xjb乱判)
题意:给出每个关卡的得分。每次过关都加上当前的的关卡分数,如果小于0就变为0.思路:手动出了无数组样例, debug了一个多小时。。。T-T终于AC了二分一个值,判断是否能够通过若干关后,满足要求。二分判断条件:1.如果跑一次,和跑两次,得分都是一样的,或者更小,那么必定有一个 相对于其他值来说是一个-inf的值,因此就在一圈,一圈~两圈之内跑。2.如果不够跑两圈,原创 2017-10-16 09:31:51 · 385 阅读 · 0 评论 -
51nod 1686 第K大区间
1686 第K大区间基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注定义一个区间的值为其众数出现的次数。现给出n个数,求将所有区间的值排序后,第K大的值为多少。众数(统计学/数学名词)_百度百科 Input第一行两个数n和k(1<原创 2017-11-02 11:16:17 · 246 阅读 · 0 评论 -
hdu 5965 扫雷(递推)
题意:中文题。思路:对于当前列的状态,可以由前两列推出来, 递推的方法就是:对于这列的数字 减去( 前一列的数字 减去 前一列的前一列你存放的地雷个数);#include #include #include #include #include using namespace std;const int maxn = 30005;long long num[原创 2017-10-17 09:24:47 · 221 阅读 · 0 评论 -
CodeForces 612C Replace To Make Regular Bracket Sequence
题意:括号匹配。注意只能变为同的情况的括号。之前写没注意如果右括号入栈就应该判为Impos#include #include #include using namespace std;char s[10000005];int tb[1000];int main(){ tb['[']=1; tb['(']=2; tb['{']=3; tb['原创 2017-05-17 15:12:17 · 295 阅读 · 0 评论 -
Square Number-3258拆平方
题意:询问给定的数字 有多少对两两相乘是一个平方数。思路:n=x*x*ym=z*z*yn*m =x*x *z*z *y *y因此只要是一次方相乘的数字相同就是一对。 例如 32= 2*2 * 2*2 * 2 8= 2*2 *2 相乘就是一组满足条件的解。之后从抽象出来的数组中求组合Ca[i] 2#include #include #原创 2017-05-01 20:09:45 · 466 阅读 · 0 评论 -
51nod-1413 权势二进制
1413 权势二进制题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成。例如0,1,101,110011都是权势二进制而2,12,900不是。当给定一个n的时候,计算一下最少要原创 2016-11-04 09:56:15 · 280 阅读 · 0 评论 -
51nod-1428 活动安排问题
1428 活动安排问题基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input第一行一个正整数n (n <= 10000)代表活动的个数原创 2016-11-06 19:40:27 · 296 阅读 · 0 评论 -
51nod-1133 不重叠的线段
1133 不重叠的线段基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。原创 2016-11-02 13:14:38 · 257 阅读 · 0 评论 -
51nod-1266 蚂蚁
1266 蚂蚁题目来源: Poj基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:2级算法题 收藏 关注n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知原创 2016-11-01 18:32:39 · 425 阅读 · 0 评论 -
51nod-1279 扔盘子
1279 扔盘子题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注有一口井,井的高度为N,每隔1个单位它的宽度有变化。现在从井口往下面扔圆盘,如果圆盘的宽度大于井在某个高度的宽度,则圆盘被卡住(恰好等于的话会下去)。盘子有几种命运:1、掉到井底。2、被卡住原创 2016-11-02 19:08:18 · 384 阅读 · 0 评论 -
51nod-1433 0和5
1433 0和5题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。注意原创 2016-11-02 20:23:55 · 348 阅读 · 0 评论 -
CodeForces 546D Soldier and Number Game
题意:给定T最数据, x,和y 每次除一次可以得到1分,问尽可能多的做除法,能最多除几次思路:在素数筛的时候同时维护num数组,尽可能多的使i拥有更多的因子。感想:第一次知道在筛的同时可以加以处理,对于时间复杂度的影响很小。自己做的时候在筛完之后重新扫了一遍,TLE了。以后注意#include #include #define maxn 5000010using原创 2016-11-17 21:35:47 · 225 阅读 · 0 评论 -
CodeForces 148C-Terse princess
题意:公主辨别宝物,如果当前宝物价值大于所有之前宝物价值总和就会说wow ,如果大于之前任何一个宝物价值就会说oh, 现在有a个oh b个wow 询问宝物出现价值顺序思路:为了使最大的尽可能的小,所以要先构造wow ,之后构造oh#include #include #include using namespace std;typedef long long ll;co原创 2016-12-11 15:40:03 · 274 阅读 · 0 评论 -
hdu5805-NanoApe Loves Sequence
题意:每次删除任意一个数字,记录最大的差值的绝对值之和。思路:第一次写的时候记录最大和次大,然而不对。留组数据 1 31 100 2如果这种写法需要维护第三大。接下来就是网上各种copy万家的代码了。前数组,后数组,维护#include #include #include #include using namespace s原创 2016-12-06 22:00:43 · 228 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2)B -Arpa's loud Owf and Mehrdad's evil plan
题意:给定n个数字 和一个x,接下来有n个数字,问数字两两组合,可以有多少情况 两个数字异或等于x思路:a^b=c ---> b= c^aPS:信心满满的过题,然而把int 开成long long 了。心疼注意0的特判#include #include #include #include #include using namespace std;ty原创 2016-12-07 14:43:19 · 339 阅读 · 0 评论 -
CodeForces 611B New Year and Old Property
题意:找出a->b有几个值的二进制只有一个0思路:这种二进制自己还真是想不清楚,对于数字枚举二进制是0的位置,带进去看是多少返回就行#include#include#include#includeusing namespace std;#define MAXD 1000 + 100#define Inf 1 << 30long long s[100];原创 2016-12-09 14:07:35 · 305 阅读 · 0 评论 -
HYSBZ 4300 绝世好题
题意:如题目。。。思路:对于将我们选定的数组中每次增加一个数字,这个数字的要求仅仅只是他存在某一位的二进制是1,并且前一个数字的对应位置上二进制也为1即可。第一组循环找到当前可以取得的最大数字,然后通过新增加的这个数字来进行转移最大值,也就是第二个循环#include#include#include#include#include#includeusing name原创 2016-12-09 16:29:47 · 356 阅读 · 0 评论 -
Timofey and a tree
题意:给出一棵树,N-1条边 每个边的颜色C[i]。询问是否有一个节点作为根,他所有子树的颜色都相同。比赛结束好久了,才补题。心酸。思路:当时没写出来。也是想的是并查集分类,但是搞了90分钟没出。记录下各位博客学的两种比较好的方法方法一:对于两端颜色相同的边不予以判定,而对于颜色不同的边,必定是一个端点作为根进行整合。那么只需要记录下有多少个颜色不同的特殊边,并且对于每种特原创 2017-02-04 23:34:06 · 295 阅读 · 0 评论 -
762C - Two strings
题意:给出a.b两个字符串,要求删除b中某段连续的子串使得得到的b串是a中的子串。询问满足条件的最长的a的子串思路:在网上看了好半天各位的博客,才知道二分竟然能这么用。真是厉害了!将b的删除问题转化:b的前缀 + 删除部分长度+ b的后缀部分预处理:b的前缀串在a中需要的长度b的后缀串在a中需要的长度二分:删除部分的长度(因为二分只能处理线性有序问题),此题无论原创 2017-02-06 03:49:58 · 265 阅读 · 0 评论 -
C - Vanya and Scales
题意: 在w进制下,给定数字m在等式一端,询问是否可以加入若干个数字,可以使得两边相等。思路:因为只可以加入w^x的形式,且只能加入一次,所以当数字化为进制形成的是0 ,1 ,w-1时才可以构成0(不加) 1(加)的两种形式,而在w-1的时候需要特殊判断前置位+1.特殊:10 899 这个数据需要仔细判断一下#include #include #include #includ原创 2017-03-02 17:04:38 · 271 阅读 · 0 评论 -
帅气的HYC的珍珠
思路:维护树状数组也可以,维护数组也可以。l数组存放当前是露珠连续的第几个sum数组存放当前1-》i 是第几个珍珠ans= sum[r]- sum[l-1]特殊判断一下 如果1 1 1这种情况 需要+1 sum[l]-sum[l-1]==1的时候需要-1 判断是如何转移过来的#include #include #include #include us原创 2017-04-01 12:25:20 · 246 阅读 · 0 评论 -
HDU 5969 最大的位或
题意:中文题。思路:对于每种情况,如果l与r的二进制位数不等,那么必定可以构造成:10000 1111 的形式。对于二进制位数相等,那么我们就可以保留前几位相等的,在某一最高位不等的情况下,把次高位~1 全都补成1pow..损精度,,WA哭了#include #include #include #include #include using namesp原创 2017-10-17 09:29:38 · 333 阅读 · 0 评论