![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm算法
nuonuo_orz
这个作者很懒,什么都没留下…
展开
-
poj3070
利用矩阵快速幂求fibonacci数列的Fn;FibonacciTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12322 Accepted: 8745DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for...原创 2016-05-02 20:12:02 · 220 阅读 · 0 评论 -
POJ 3176 递推
题目链接:http://poj.org/problem?id=3176题意:从第一个数开始,可以从下走,也可以从右下走,问走过路径的和的最大值;思路:简单递推,dp[i][j] = max( dp[i-1][j-1] , dp[i-1][j] ) + a[i][j];太坑了,这道题读了半天也没读懂。。#include<cstdio>#include<algorithm>...原创 2016-07-05 23:32:47 · 186 阅读 · 0 评论 -
POJ 1107 选定字符循环右移
题目链接:http://poj.org/problem?id=1107题目好难看懂啊,其实就是把字母和下划线分为三个组,每个组的字母分别循环右移k1,k2,k3个单位,我用的队列,比如第一组字母{i,c,b,f,h,e}-》{h,e,i,c,b,f}字符串从右往左循环,遇到符合条件字母就加入队列,则头-尾:e,h,f,b,c,i,循环右移两个单位的话,就取出队头再把它放入队列,进行两次后就变为了:...原创 2016-07-06 16:30:39 · 317 阅读 · 0 评论 -
CodeForces 234G 二分模拟
题目链接:http://codeforces.com/problemset/problem/234/G题意:问有n个球员,至少安排多少场练习赛,才能让所有球员之间都处于过不同的队伍。并输出每次练习赛第一队人数及球员序号。思路:假设有7个人,1,2,3,4,5,6,7;递归二分这个序列直到剩一个序号为止,记录每次二分左边的序号,第一次:1,2, 3,/4 5 6 7 第一队: 1 2 ...原创 2016-07-06 21:04:27 · 293 阅读 · 0 评论 -
HDU 1577 判断两点之间是否存在整数点
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1577题意:给出两个人的坐标,问一个是否能看到另一个人;思路:若能看到另一个人的话,这两个点之间没有整数点。即三角形两直角边边长的最大公约数为1;#include<cstdio>#include<algorithm>#include<cstring>#inclu...原创 2016-07-07 00:46:36 · 494 阅读 · 0 评论 -
HDU 1028 数的划分
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028题意,问一个数最多可以划分为多少种,不考虑顺序。思路:设dp[i][j]表示把i划分为j种有多少种划法,可以把情况分为两种,一种每份中都不含1,把每份都减去1,相当于把i-j分为j份,即dp[i-j][j];一种至少含一个1,把那个1减去,相当于把i-1分为j-1份,即dp[i-1][j-1]。所以d...原创 2016-07-08 10:51:31 · 242 阅读 · 0 评论 -
CodeForces 257D
DescriptionVasya has found a piece of paper with an array written on it. The array consists of n integers a1, a2, ..., an. Vasya noticed that the following condition holds for the array ai ≤ ai + 1 ≤ ...原创 2016-07-09 23:14:25 · 550 阅读 · 0 评论 -
POJ 3154 贪心
DescriptionProgramming contests became so popular in the year 2397 that the governor of New Earck — the largest human-inhabited planet of the galaxy — opened a special Alley of Contestant Memories (AC...原创 2016-07-11 09:48:59 · 223 阅读 · 0 评论 -
HDU 1071 解方程
DescriptionIgnatius bought a land last week, but he didn't know the area of the land because the land is enclosed by a parabola and a straight line. The picture below shows the area. Now given all the...原创 2016-07-12 10:31:47 · 410 阅读 · 0 评论 -
CodeForces 254C 字典序
Descriptioninputinput.txtoutputoutput.txtString x is an anagram of string y, if we can rearrange the letters in string x and get exact string y. For example, strings "DOG" and "GOD" are anagrams, so a...原创 2016-07-12 10:52:06 · 415 阅读 · 0 评论 -
POJ 1958 变形汉诺塔
DescriptionBackgroundCharlie Darkbrown sits in another one of those boring Computer Science lessons: At the moment the teacher just explains the standard Tower of Hanoi problem, which bores Charlie to...原创 2016-07-12 19:58:26 · 855 阅读 · 0 评论 -
POJ 2367 拓扑排序
G - 1-7Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 2367DescriptionThe system of Martians' blood relations is confusing enough. Actually, ...原创 2016-07-04 15:45:12 · 256 阅读 · 0 评论 -
hdu3863 No Gamblin 博弈
DescriptionOne day, Flyvan introduced a new game to his two friends, Oregon Maple and Grape Skin. The game is quite simple. Given an N-sized grids, like the figure A shown below (as N = 4). The blue p...原创 2016-07-04 10:31:31 · 308 阅读 · 0 评论 -
poj1990
题意:有n头牛排成一列,每头牛都有它自己的声调 v 和坐标 x ,两头牛交流消耗的能量为 max(v1,v2)*这两头牛之间的距离,求令这n头牛两两交流共消耗的能量。解题思路:按音调从低到高排成一列,这样对于每头牛来说只需考虑它前面的牛就可以了,对于牛 i,前面牛的坐标可能大于也可能小于这头牛 ,所以需要两个树状数组 ,一个存放坐标,一个存放数量,令 down_sum表示小于等于此头牛的坐标...原创 2016-05-05 11:33:29 · 312 阅读 · 0 评论 -
poj 2505
DescriptionStan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the nu...原创 2016-05-14 16:47:01 · 275 阅读 · 0 评论 -
HYSBZ 1012
A - 最大数maxnumberTime Limit:3000MS Memory Limit:165888KB 64bit IO Format:%lld & %lluSubmit Status Practice HYSBZ 1012Description 现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数...原创 2016-05-19 20:25:27 · 342 阅读 · 0 评论 -
poj 3735
G - Training little catsTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 3735DescriptionFacer's pet cat just gave birth to a brood of little c...原创 2016-05-21 16:21:36 · 347 阅读 · 0 评论 -
poj1067 取石子游戏
F - 取石子游戏Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最...原创 2016-05-27 20:16:47 · 426 阅读 · 0 评论 -
最大公约数与最小公倍数
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">竟然忘了最大公约数怎么求了。。翻了翻课本,发现代码真是太TM帅了</span>int gcd(int a,int b){ if(b==0) return a; return gcd(...原创 2016-06-03 20:12:07 · 248 阅读 · 0 评论 -
ACM常用函数整理
不定期更新ing~ 1,strtol() strtol() 函可将n进制数转换为10进制,用来将字符串转换为长整型数(long),其原型为:long int strtol (const char* str, char** endptr, int base); error存储第一个转换失败以及以后的的字符串;例如:把11221由二进制转换为十进制:num=strtol(s...原创 2016-06-06 22:10:46 · 1317 阅读 · 0 评论 -
Round 06 E-FatMouse' Trade
DescriptionFatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains J[i] po...原创 2016-06-08 22:50:39 · 229 阅读 · 0 评论 -
HDU 1116 Play on Words 欧拉道路
F - Play on WordsTime Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1116DescriptionSome of the secret doors contain a very interesting word puzz...原创 2016-06-13 19:44:38 · 228 阅读 · 0 评论 -
hdu1616 深搜+简单回溯
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 18pt; background-color: rgb(255, 255, 255);">Description</span>There is a mountain near yifenfei’s hometown. On the mount...原创 2016-07-04 10:03:53 · 314 阅读 · 0 评论 -
CodeForces 105A
DescriptionIn Disgaea as in most role-playing games, characters have skills that determine the character's ability to use certain weapons or spells. If the character does not have the necessary skill,...原创 2016-07-12 22:31:35 · 271 阅读 · 0 评论 -
map与set的使用
1, map的两种遍历<span style="font-size:14px;"> map<string,int>::iterator it; for(it=MAP.begin();it!=MAP.end();++it){ cout<<it->first<<" "<<it->second/100&原创 2016-07-12 22:46:46 · 205 阅读 · 0 评论 -
hdu5734
Problem DescriptionDeep neural networks (DNN) have shown significant improvements in several application domains including computer vision and speech recognition. In computer vision, a particular type...原创 2016-07-21 21:47:16 · 272 阅读 · 0 评论 -
hdu5813
题意:给n个点,构建有向图,使从每个点出发能到达的点恰好为为cnt思路:把cnt从小到大排序,对于每个点,若排在其之前的点数目>=cnt,则能构建成功。然后从第一个开始与i连接就好。一开始理解错了,以为必须要构建最小边数#include <iostream> #include <cstdio> #include <cstring> #inclu...原创 2016-08-10 10:34:16 · 409 阅读 · 0 评论 -
hdu5818
题意:对两个栈进行三种运算,push,pop,merge(把两个栈中的元素合并到一起,按进栈时间排列)思路:因为不会对空栈进行操作,所以在合并时把AB两个栈中元素放入c栈(其实需要两个栈来使得后进栈的在栈顶),这样在栈为空时,可知其以前元素经过合并并压入了C栈,所以pop C栈即可。一直run error,找了半天 才发现是pop a栈写为pop b了,复制代码需谨慎啊#include <i...原创 2016-08-10 14:20:31 · 483 阅读 · 0 评论 -
hdu5810
题意:有n个球m个盒子,把球随机放入,xi为第i个盒子的球数,方差为,求E[V]题解:E[V]=E[m∑i=1m(Xi−X¯)2]=E[(Xi−X¯)2]=E[Xi2−2XiX¯+X¯2]= E[X_i^2] - 2\bar XE[X_i] + E[\bar X^2] = E[X_i^2] - 2\bar...原创 2016-08-10 15:07:10 · 318 阅读 · 0 评论 -
hdu5816 状压dp
题意:有两种牌,A:可以从牌堆摸两张牌,B:可以对敌人造成x点伤害。牌堆有n张A和m张B,一开始摸一张牌,敌人有p点血,问把一个回合把敌人打死的概率思路:因为n+m<=20,可以考虑状压dp,用dp[S]表示手中牌为S时的方案数,可以再摸的牌数num为 A的数量*2-A的数量-B的数量+1,1表示开始拥有的一张牌。对于状态i,状态转移方程为num>0时, for(int j=0;j&l...原创 2016-08-11 19:56:59 · 280 阅读 · 0 评论 -
hdu5812 区间操作
题意:给两个数字序列a,b,在给出m次区间,每次区间操作可以对L[i]~R[i]间的数字进行任意排列,问序列a能否在m次操作后变为序列b.思路:贪心思想,每次操作都使a[i]尽可能的靠近它的期望位置,所以对每个操作区间按照它的期望位置排序,结果和b序列一样那就YES。O(n^2)可以处理出每个a[i]的期望位置。#include <iostream> #include <cs...原创 2016-08-11 20:07:18 · 280 阅读 · 0 评论 -
hdu5831
题意:有一个只包含 ‘(’‘)’ 的序列,选两个位置进行一次交换,问是否能构成合法序列?思路:遍历,遇到“("时,a++,遇到“)"时,若a>0,说明有正常的左括号与右括号匹配,若a<=0,说明匹配不上,b++;遍历结束后,若 a==0,b==0,说明全正常,YES a==1,b==1,说明有一对不匹配 ) ( ,YES a==2,b==2,说明有两对不匹配 ) ) ( ( ,交换...原创 2016-08-11 21:09:22 · 376 阅读 · 0 评论 -
hdu5826 物理+积分
题意:给出n个相同小球的初速度和初位置,初方向,v*a=c,碰撞为完全弹性碰撞,问t时刻的第k小的速度为多少思路:v*a=cv*dv/dt=c;v*dv=c*dt;1/2*v*v=c*t+c0;把t=0代入,得c0=1/2*v0*v0;所以 v=sqrt(2*c*t+v0*v0)注意2*c*t+v0*v0会爆int#include <iostream> #include <c...原创 2016-08-12 09:44:33 · 453 阅读 · 0 评论 -
poj3254 状压dp
题意:在n*m方格中种草,每两处种草的格子不能相邻,并且不能在贫瘠的土壤中种植(a[i][j]==1),问有多少种方案思路:用dp[i][j]表示i行状态为j时有多少种方案,当两个1不相邻,并且bit==1时a[i][j]=1,状态j合法。对于每个合法状态dp[i][j],遍历i-1行所有的状态,若j可由k状态转移而来,dp[i][j]+=dp[i-1][k]。#include <iostr...原创 2016-08-14 21:00:26 · 233 阅读 · 0 评论 -
poj1185 三维状压dp
Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到...原创 2016-08-17 22:04:24 · 276 阅读 · 0 评论 -
hdu5867 中位数
题意,一个有序数组,进行m次查询,每次输出L1-R1,L2-R2两个子序列组成的新序列的中位数思路:题目可以转化为求新序列中第k个数字为多少,分类讨论,两个子序列可能交叉,可能一个完全包含另一个,也可能完全分离。这次也调了好久的bug,和以往不同,几乎没有看程序,一直出数据猜。。结果最后发现错误很容易就能看出来,看来调bug时不能一直看程序,也不能一直瞎出数据啊#include <iostr...原创 2016-08-18 19:31:13 · 369 阅读 · 0 评论 -
hdu5794 lucas定理+容斥
题意,一个棋子从(1,1)以马字形走向(n,m),只能朝右上走,棋盘上有r个点的障碍,问有多少种走法。思路:马字形在x方向和y方向的距离和为3,所以(n+m)%3==0,说明可以走到。因为每一步都在x,y方向上至少走1,所以走“日”字步数s1为=m-(n+m)/3,走“曰”字步数s2为n-(n+m)/3,走到(n,m)共C(s1+s2,s1)种走法。考虑到障碍的话,到(n,m)的步数=总步数-经过...原创 2016-08-07 16:46:03 · 327 阅读 · 0 评论 -
hdu5795 博弈
题意,nim游戏,n堆石子,可在一堆中取任意个,也可把一堆分为三堆,最后取完的胜思路:打表找规律。。x=8k+7时,sg[x]=x+1,x=8k+8时,sg[x]=x-1,其余情况,sg[x]=x。比赛时以为x一定能转移到0~x-1的状态的,还在二进制表示中找到了一个特别神奇的规律。。血崩其实sg[8]可以转移到sg[0]~sg[7],但sg[7]的值为8,所以sg[8]的值就为7。。打表代码:#...原创 2016-08-04 19:58:36 · 343 阅读 · 0 评论 -
upper_bound与lower_bound
都应用于单调非递减序列函数lower_bound()原型为ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val),在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置。函数upper_bound()原型为Forw...原创 2016-07-27 09:40:09 · 273 阅读 · 0 评论 -
hdu5726
题意:给定一个序列,多次询问[L,R],输出这段区间的最大公约数,以及为此公约数的区间个数。思路,用RMQ处理,然后对每个左端点i,二分搜索最远的右端点R,使i到这个端点区间内最大公约数相同,用MAP记录此段区间个数,一直处理到R=n;二分搜索不知为什么用while(high-low>1)这种总是WA,自己写的样例却都对。。保险起见,以后还是用while(low<=high)这种吧#i...原创 2016-07-27 13:20:31 · 748 阅读 · 0 评论