技巧
HAI__嗨I起来
IT
展开
-
对拍程序
对拍程序,可以用于检查代码,写一个标准程序来生成数据,来检验另一个程序的正确性1.cpp#includeusing namespace std;int main(){ int a,b; cin>>a>>b; cout<<a+b<<endl; return 0;}2.cpp#includeusing namespace std;int ma原创 2017-03-23 17:20:36 · 479 阅读 · 0 评论 -
HDU 5690 查找循环节 数学公式快速幂+乘法逆元(除法取模)
因为m为10^10 次方,很大,所以猜测应该会出现循环节,于是找到循环节映射出来即可#include#include#include#define LL long long#define INF 0x3f3f3f3f#define bug puts("**********");using namespace std;int vis2[200000];int vis[原创 2016-05-21 19:42:55 · 520 阅读 · 0 评论 -
HDU 5672 查找子串的个数 思维 双指针
点击打开链接有一个明显的性质:如果子串(i,j)包含了至少kkk个不同的字符,那么子串(i,k),(j因此对于每一个左边界,只要找到最小的满足条件的右边界,就能在O(1)时间内统计完所有以这个左边界开始的符合条件的子串。寻找这个右边界,是经典的追赶法(尺取法,双指针法)问题。维护两个指针(数组下标),轮流更新左右边界,同时累加答案即可。复杂度 O(lengt原创 2016-04-23 21:44:31 · 842 阅读 · 0 评论 -
L2-005. 集合相似度 unique的应用 去重 vector
L2-005. 集合相似度时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不原创 2016-05-16 14:25:47 · 519 阅读 · 0 评论 -
SDUT 2608
题意;给一个多项式,然后给你多个p让你求x^p对应的系数思路:每个p都可以由唯一的一组二进制数相加的到,然后只需要将他们的系数乘起来就行了。#include#define LL long longusing namespace std;#define eps 1E-10#define INF 0x3f3f3f3fint a[10000];原创 2016-05-01 22:15:10 · 361 阅读 · 0 评论 -
SDUT 2605 大幂和的分解,转化成R进制进行哈希 高效率打表(花样哈希)
A^X mod PTime Limit: 5000ms Memory limit: 65536K 有疑问?点这里^_^题目描述It's easy for ACMer to calculate A^X mod P. Now given seven integers n, A, K, a, b, m, P, and a function f(x) which defi原创 2015-10-30 10:48:39 · 444 阅读 · 0 评论 -
51nod 1276 岛屿的数量(思维题)
有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。给出N个岛的高度。然后有Q个查询,每个查询给出一个海平面的高度H,问当海平面高度达到H时,海上共有多少个岛屿。例如:岛屿的高度为:{2, 1, 3, 2, 3}, 查询为:{0, 1, 3, 2}。当海面高度为0时,所有的原创 2016-03-27 14:55:15 · 926 阅读 · 0 评论 -
HDU 搬砖
搬砖Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 4646 Accepted Submission(s): 1060Problem Description 小明现在是人见人爱,花见花开的高富帅,整天沉浸在美原创 2015-11-29 22:24:00 · 498 阅读 · 0 评论 -
HDU 5242Game 树上的贪心 树形dp 求出使K条链的权值总和最大
树链剖分找权值最大的前k条链题目大意:给定一个树形的游戏网络,可以从根节点出发k个人,每个人可以沿着一条路径走下去,不能回头,出口在各个叶子节点,在路过一个节点时可以 获得该点的权值,每个点的权值只能被获得一次,问k个人怎样走最后可以获得的权值最多解题思路:首先从反向建立一棵有向树(从叶子节点到根节点),首先dfs1找出每个节点到根节点的最大权路径,然后按权值递减排序原创 2016-05-21 22:05:27 · 874 阅读 · 0 评论 -
HDU 5217 list 的学习与使用 和与其他STL的区别
题意:三个操作 1 a b : 队列中加入(x = a, y = b); -1 a b : 队列中减去(x = a, y = b); 0 p q :从队列的数对中查询哪一对x,y能够让 p * x + q * y最大;这道题用map,set,vector都会超时,但用list不会在实际使用时,如何选择这三个容器中哪一个原创 2016-05-22 18:40:54 · 290 阅读 · 0 评论 -
POJ 2454 Jersey Politics 分组问题 随机化算法
题意:给出3*k个数,将它们分成三分,每份k个数,要求至少存在有两份,使得每一份的k个数的和大于500*k。思路:先从大到小的进行排序,然后只需要将前2*n大的数进行随机的分配成两组就行了。#include #include #include #include #include #include #include #include #define LL long lon原创 2016-09-03 21:12:39 · 350 阅读 · 0 评论 -
HDU 5719 贪心,脑洞题
点击打开链接题意:这儿共有nn堆稻谷,编号为11到nn。Psyche需要将这些谷堆以某种顺序排列,设最终排在第ii位的谷堆是A_iAi。她得知了一些该排列的要求: 1. 对于任意整数i \in [1,n]i∈[1,n],A_1, A_2, ..., A_iA1,A2,...,Ai的最小值为B_iBi。 2. 对于任意整数i \in [1,n]原创 2016-08-11 10:30:18 · 396 阅读 · 0 评论 -
HDU 5750 数学题
随便推导下, 令y=xdy=xd, 如果dd是yy的maximum positive proper divisor, 显然要求xx是yy的最小质因子. 令mp(n)mp(n)表示nn的最小质因子, 那么就有x \le mp(d)x≤mp(d), 同时有y yn, 那么x \le \lfloor \frac{n-1}{d} \rfloorx≤⌊dn−1⌋.原创 2016-08-10 10:05:58 · 398 阅读 · 0 评论 -
顺序存储的二叉树的最近的公共祖先问题
5-10 顺序存储的二叉树的最近的公共祖先问题 (25分)设顺序存储的二叉树中有编号为ii和jj的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。输入格式:输入第1行给出正整数nn(\le 1000≤1000),即顺序存储的最大容量;第2行给出nn个非负整数,其间以空格分隔。其中0代表二叉树中的空结点(如果第1个结点为0,则代表一棵空树);第3行给出一原创 2016-07-02 21:19:59 · 4386 阅读 · 0 评论 -
5-13 六度空间 BFS 查找各个点之间的距离(有减枝)
5-13 六度空间 “六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理原创 2016-07-02 21:18:13 · 620 阅读 · 0 评论 -
已知先序中序求树的高度或叶子数
#includeusing namespace std;char head[1000],mid[1000];int n;int Find(int ind,int low,int high){ int i=-1; for(i=low;i<=high;i++){ if(head[ind]==mid[i]) break; } return i;}int solve(int i原创 2016-07-13 16:58:15 · 445 阅读 · 0 评论 -
堆中的路径
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数NN和MM(\le 1000≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的NN个要被插入一个初始为空的小顶堆的整数。最后一行给出MM个下标。输出格式:对输入中原创 2016-07-12 22:06:12 · 590 阅读 · 0 评论 -
pat 整数分解为若干项之和
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。输入格式:每个输入包含一个测试用例,即正整数N (0N\le≤30)。输出格式:按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N_1=N1={n_1, n_2, \cdotsn1,n2,原创 2016-07-12 11:15:23 · 2438 阅读 · 2 评论 -
HDU 5596 思维题(逆向思维)*
GTW likes gtTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 416 Accepted Submission(s): 153Problem DescriptionLong long ago, th原创 2015-12-13 10:44:45 · 570 阅读 · 1 评论 -
HDU5591 博弈
http://acm.hdu.edu.cn/showproblem.php?pid=5591题意每次,有一个人猜了一个数之后,范围就会变小,另一个人就不能猜不在这范围的数字了。我们会发现这个模型其实是类比于左右两堆石子,每次可以在一堆里取任意多,取完的人胜利.当左右两堆石子相同时,我们可以简单的构造后手胜利的方法: 即在另一堆石子中取走同样多的石子,否则,先手可以取一些石子原创 2015-12-12 13:53:22 · 430 阅读 · 0 评论 -
HDU 5586 最大连续子序列和变形
SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 790 Accepted Submission(s): 425Problem DescriptionThere is a number sequence原创 2015-12-12 22:04:40 · 378 阅读 · 0 评论 -
HDU 4764 博弈论
DescriptionTang and Jiang are good friends. To decide whose treat it is for dinner, they are playing a game. Specifically, Tang and Jiang will alternatively write numbers (integers) on a white boa原创 2015-09-10 11:23:21 · 481 阅读 · 0 评论 -
周赛二 CodeForces 545B 思维题
DescriptionLittle Susie loves strings. Today she calculates distances between them. As Susie is a small girl after all, her strings contain only digits zero and one. She uses the definition of Ham原创 2015-08-09 21:17:16 · 596 阅读 · 0 评论 -
UVALive 7147 思维题(贪心)
In normal football games, the winner team gets 3 points, loser team gets 0 point, and if there is a drawgame, both of the teams get 1 point.In World Cup 1994, Group D there is an interest thing ha原创 2015-10-05 20:11:59 · 435 阅读 · 0 评论 -
HDU 5122 求交换的轮数
HOT~ 杭电2015级新生如何加入ACM集训队?K.Bro SortingTime Limit: 2000/2000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total Submission(s): 1336 Accepted Submission(s): 608Probl原创 2015-10-04 20:37:31 · 316 阅读 · 0 评论 -
BNUoj Carries 统计进位的次数(优化)
B. CarriesTime Limit: 1000msMemory Limit: 65536KB64-bit integer IO format: %lld Java class name:Main SubmitStatus frog has n integers a1,a2,…,an, and she wants to add原创 2015-10-01 21:24:35 · 923 阅读 · 0 评论 -
BNUoj Rectangle 在矩形中查找矩形的种类
E. RectangleTime Limit: 1000msMemory Limit: 65536KB64-bit integer IO format: %lld Java class name:Main SubmitStatus frog has a piece of paper divided into \(n\) rows and \原创 2015-10-01 19:25:16 · 708 阅读 · 0 评论 -
HDU 4763 字符串的前中后三段公共子串
DescriptionIt's time for music! A lot of popular musicians are invited to join us in the music festival. Each of them will play one of their representative songs. To make the programs more interes原创 2015-09-10 12:25:48 · 522 阅读 · 0 评论 -
HDU 4968 等级估计 暴力枚举技巧的使用
DescriptionXueba: Using the 4-Point Scale, my GPA is 4.0. In fact, the AVERAGE SCORE of Xueba is calculated by the following formula: AVERAGE SCORE = ∑(Wi * SCOREi) / ∑(Wi) 1where SCOREi原创 2015-09-09 21:52:06 · 375 阅读 · 0 评论 -
SDUT 3142 查找三角形的个数 (防TLE)
Count triangleTime Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述一开始就出一大堆英文题确实不好,那么现在来一道中文题目(虽然我觉得英文比中文好解释清楚)。题目是这样子的:给定N条边,编号从1~N,每条边都有一个边长,问可以组成多少个不同的三角形(有一条边的编号不同便视为不同的三角形)。原创 2015-10-09 21:42:30 · 469 阅读 · 0 评论 -
下一个较大值 栈和队列(优化防止TLE)
数据结构实验之栈六:下一较大值(二) Time Limit: 150MS Memory limit: 8000K 题目描述对于包含n(1输入 输入有多组,第一行输入t(1<=t<=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n个元素。输出 输出有多组,每组之间输出一个空行(最后一组之后没原创 2015-10-09 11:09:47 · 548 阅读 · 0 评论 -
SDUT 2500 统计N!中包含末尾0 的个数
0\'sTime Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述计算整数n!(n的阶乘)末尾有多少个0。输入 第一行输入一个数T代表测试数据个数(T输出对于每个测试数据输n!末尾有多少个0,每行输出一个结果。示例输入31510示例输出012原创 2015-11-01 00:11:53 · 536 阅读 · 0 评论 -
CodeForces 337C 找规律 ,等比数列求和
H - 1007Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmitStatusPracticeCodeForces 337CDescriptionManao is taking part in a quiz. The quiz consists o原创 2015-10-31 18:40:23 · 547 阅读 · 0 评论 -
CodeForces 44B 思维题,防TLE
DescriptionTo celebrate the opening of the Winter Computer School the organizers decided to buy inn liters of cola. However, an unexpected difficulty occurred in the shop: it turned out that col原创 2015-11-15 10:51:41 · 1097 阅读 · 0 评论 -
FZU Problem F 单纵大法好 (贪心,set容器) *
Problem F 单纵大法好Accept: 106 Submit: 500Time Limit: 5000 mSec Memory Limit : 65536 KB Problem Description人在做,天在看,单纵不怂保平安众娘皆为轮回来,敢教POI进夜战。勿怪战列低智商,航母不是一个样?假摔不虚有损管,大破进击是真相!老S最原创 2015-10-06 20:18:20 · 525 阅读 · 0 评论 -
整数的拆分
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都涉及到。 所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+m3+....+mi;(其中mi为正整数,并且1}为n的一个划分。 如果{m1,m2,m3,....,mi}中的最大值不超过m,即max{m1,m2,m3,....,mi} 例如当n=4时原创 2015-10-27 23:57:35 · 421 阅读 · 0 评论 -
SDUT 1263 自然数的拆分 递归
自然数的拆分问题Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复。输入输入只有一个整数n,表示待拆分的自然数n。输出输出如样例!示例输入7示例输出1+61+1+51+1+1+41+1+原创 2015-10-29 11:47:31 · 2551 阅读 · 0 评论 -
SDUT 1919 规律,思维
GCCTime Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述The GNU Compiler Collection (usually shortened to GCC) is a compiler system produced by the GNU Project supporting various pro原创 2015-10-27 22:06:33 · 597 阅读 · 0 评论 -
CSU 规律题
DescriptionInputOutputSample Input32 2 22 1 310 1000 24Sample Output127HINTSource根据题意,看一个数可以分多少次才可以到达 a和b的 值#include #include #include #include#i原创 2015-10-10 18:33:26 · 481 阅读 · 0 评论 -
3076神奇的加法(sdut)
神奇的加法Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述1+2 = 3;4+5 = 9;2+3+4 = 9; 有一种加法形式如上述所示,等式的左边是连续2个或2个以上的正整数相加。和值等于n.现在给你一个确定的n,你能求出有多少个这种等式满足和为n吗? 输入 输入数据原创 2015-06-07 19:46:55 · 474 阅读 · 0 评论