自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

llbcys

不一样的烟火

  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 poj 1808 Quadratic Residues

平方剩余的问题,题目只要判断是否存在平方剩余就行啦。。int solve(LL a, LL p) { //判断x*x (-=) a(mod p) 是否存在 LL res = pow_mod(a , (p - 1) >> 1, p); if (res == p - 1) return false; return ture; }

2013-09-28 16:26:48 837

原创 POJ 2142 The Balance

开始就按扩展阿基里德算法去做,但是错了很多次。。‘问题出在那个大小的转换。。AC代码:#include #include #include using namespace std;int fabs(int z){ if(z >= 0) return z; else return -z;}void exgcd(int a,int b,int &d,in

2013-09-27 21:16:48 874

原创 POJ 1006 Biorhythms

这个是这个剩余定理,开始按同余方程的方法求,结果很快就出来了。AC代码:#include#include#include#include#define N 21252using namespace std;int w[4],q[4]={23,28,33};void exgcd(int a,int b,int &d,int &x,int &y){ if(b==0)

2013-09-27 19:01:48 701

原创 POJ 2562

开始题目意思没有看懂,结合测试数据就知道是水题了,就是求有多少个进位。算是在poj上做的最水的一个吧!!AC代码:#include#include#include#includeusing namespace std;int main(){ int n,m,a,b,sum,c; while(scanf("%d%d",&n,&m) && (n || m))

2013-09-27 11:22:51 1305

原创 POJ 2689 Prime Distance

素数的二次筛选。素数的筛选,数据比较大,不能用常用的方法。因为最大数据是20亿,开根号后就为50000左右,把5万以下的素数表打出,再二次筛选就可以了。开始的时候把函数写在外面超时,写进去以后就0ms过,这个想不通。。。AC代码:#include#include#include#include#includeusing namespace std;int q[6

2013-09-27 10:53:46 743

原创 POJ 1090 生日蛋糕

是个bfs的题目,加剪枝就行。重点是怎样来剪枝。自己敲了,提交超时——应该是剪枝没有处理好,后来百度看了一下0ms过的代码,发现就差一个剪枝(2*(n-z)/r+y > s)就可以了。AC代码:#include#include#include#include#include#define maxx 99999999using namespace std;int n,m

2013-09-25 11:31:50 892

原创 HDU 1239 Calling Extraterrestrial Intelligence Again

是个小搜索题吧!不过也要注意一下剪枝。需要找到两个数(不妨设为p,q)满足以下条件:    1、 p,q均为质数;    2、p*q    3、a/b 要找到输出所有满足以上条件的p,q中乘积最大的一对p,q。剪枝:考虑大于10000的某个质数,不妨设为Q,另一个质数为P,则:a、如果Pb、如果P>10,P*Q>100000。而考虑到a,b的取值范围(1

2013-09-24 21:45:02 707

原创 POJ 1011 Sticks

题目的意思:给定N段长度不超过50的木棍,拼成相同长度的木棍,求这个长度的最小值。这个题目需要很多的优化:1.必须从但根长度的最大值maxx开始搜索->sum-maxx;必须满足被总和整除。2.标记,不要重复使用。按大小排序,可以跳过相同的值。3.如果搜索返回后长度为0,就可以跳出循环。AC代码:#include#include#include#includeu

2013-09-24 16:33:19 723

转载 HDU 1098 Ignatius's puzzle

题目的关键是f(x)=5*x^13+13*x^5+k*a*x;由于x取任何值都需要能被65整除.那么用数学归纳法.只需找到f(1)成立的a,并在假设f(x)成立的基础上,证明f(x+1)也成立.那么把f(x+1)二项式展开,得到5*( ( 13 0 )x^13 + (13 1 ) x^12 ...... .....+(13 13)x^0)+13*( ( 5 0 )x^5+(5 1

2013-09-21 17:48:40 706

原创 HDU 3579 (Hello Kiki)

中国剩余定理的题目,用扩展欧几里得算法去实现,木有什么特别的吧!!!今天感觉打同余定理的知识点好打多了吧!!继续。。。AC代码:#include#include#includetypedef __int64 ll;using namespace std;ll gcd(ll a,ll b){ return b == 0?a:gcd(b,a%b);}voi

2013-09-21 11:25:51 819

原创 HDU 1573 X问题

中国的剩余定理。思路是:先求w数组里面的最小公倍数lcm。方程在小于N的范围的解是a,则a+lcm*xAC代码:#include#include#includeusing namespace std;__int64 gcd(__int64 a,__int64 b){ return b==0?a:gcd(b,a%b);}void exgcd(__int64 a

2013-09-20 20:44:24 752

原创 POJ 2115 (C Looooops)

打这个纯粹是看书看到这里,看见这个题目,就按数上的打一下,就当理解一下线性同余方程,不过打完了,还有好多疑问!!!!表示数学真是太博大精深了。。。代码如下:#include#include#includeusing namespace std;void exgcd(__int64 a,__int64 b,__int64 &d,__int64 &x,__int64 &y){

2013-09-20 15:15:56 642

原创 HDU 1124 Factorial

题目的意思是求垒乘以后的结果末尾有多少个0。数据很大,不可能一次乘下去。所以必须考虑哪些值得乘积末尾是0,1、首先是10的倍数的末尾一定有0;2、末尾是5的可以乘以其他数的结果末尾为0;应该注意有25,50,75,(相距5*5=25个距离)这种数结尾的0要比其他的要多一个0;AC代码:#include#include#includeusing namespac

2013-09-20 10:00:09 748

原创 HDU 2136

数论的题目吧,开始用打表的方法求出素数的位置,后来在去搜索,这样超时了,可能是因为数据的组数比较多吧!!!如果在打表的时候把小于1000000所有的数全部打上去,直接输出去q[i]的值就行啦!!AC代码:#include#include#include#includeusing namespace std;int q[1000008];int ant;void pri

2013-09-19 16:41:48 750

原创 HDU 4255(蛇形填数+BFS+优先队列)

这个题目把代码打完以后,真心觉得蛋疼。不知道改了多久,构建的蛇形二维数组一直有问题。。。AC代码:#include#include#include#includeusing namespace std;int q[150][150],w[30000],r[150][150];int n,m;int c,d;struct node{ int a,b; int pri

2013-09-17 21:13:15 998

原创 HDU 1242 (BFS+优先队列)

这个题目直接BFS+优先队列;没有其他考虑的,从天使开始搜就行啦!!AC代码:#include#include#include#includeusing namespace std;char q[208][208];int w[208][208];int m,n;struct node{ int a,b; int pri; bool operator<(c

2013-09-17 19:52:04 729

原创 HDU 1026 (BFS+优先队列)

BFS+优先队列,做这个题的时候只要保存路径的前驱就行啦!!其他没有处理。虽然一次性AC,但是打了好久,手都累了。(还加上改错吧!!)AC代码:#include#include#include#includeusing namespace std;char q[108][108];int w[108][108];int m,n;struct node1{ //

2013-09-17 19:00:42 740

原创 POJ 2312

这个是BFS+优先队列,开始知道的时候就用步伐做优先的值。。没有考虑在'B' (brick wall) 时候的延迟一步就答案错了几次,不知道错在哪,百度的时候才知道要加。。。1.基本操作:empty()   如果队列为空返回真pop()      删除队首元素push(x)   加入x元素size()      返回当前队列中元素个数top()       返回队首

2013-09-17 17:36:50 845

原创 HDU 1492

好久没有做数论的题目了,今天看书的时候看到了几个给力的级数模型,就找了几个题目试试。。这个题目就是给定正整数n求其有多少个约数。。。数据比较大(64位),暴力基本没戏。。化为:n=p1^a1*p2^a2~~pn^an;则总个数sum=(a1+1)(a2+1)~~(an+1);前面那个分解试叫唯一分解试,在数论里面有很多应用。 15ms把,还算比较快。。AC代码:#i

2013-09-16 16:40:09 852

原创 UVA 10032(Tug of War)

这个开始的时候就用01背包3维数组,不知超时了多少次了,及其的伤感。后来用vector容器来做就可以防止超时发生了。简单总结一下vector用法,因为在动规里面经常要用到的。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。  vector里面的数据是动态分配的,使用push_bac

2013-09-11 10:19:14 1637 2

原创 湖南第八届 J题-病毒

在开始的时候就进了思维定式,开始了对先满足上升的条件,在解决相等的问题,就这样调试到比赛完也是(Wrong Answer)。伤感及........后面问了同学,说要先判断相等再保证上升,也没有说清理由是什么。就试着打了一下就过了。AC代码:#include#include#include#includeusing namespace std;int dp[1008][1008

2013-09-08 10:43:26 842

原创 RMQ with Shifts

湖南第七届ACM的最后一题,看了大家都知道是线段树,比赛的时候以为是把shift里面的数排序在重新放进去,所以没有AC啦。完了以后同学说了是把数据左移一位放进去就可以了。还有因为数据很大,不能用cin输入会超时,事实证明额超了很多次AC代码:#include#include#include#include#includeusing namespace std;int a

2013-09-05 17:07:16 759

原创 POJ 1463 Strategic game

其实这个和那个没有上司的晚会是一个类型的题目吧!! 几乎一样,都是个从根节点网下搜的树形动规。1、dp[i][0],表示在结点 i 没放置士兵的情况下,看住以结点 i 为根的子树的所有边所需的最少士兵;2、dp[i][1],表示在结点 i 放置士兵的情况下,看住以结点 i 为根的子树的所有边所需的最少士兵。状态转移:1、dp[i][0+=dp[j][1],j 是 i 的儿子

2013-09-02 17:42:41 649

匹配理论及匈牙利算法

网络流的资源吧!很任意懂的那种。

2013-08-15

背包问题九讲2

各种背包问题平时做的其实也是很多,但是还是要看一下基础的知识,其实我也算重新看一下讲义,回顾一下吧

2013-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除