自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liwei的专栏

记录生活与学习的点点滴滴

  • 博客(32)
  • 收藏
  • 关注

原创 POJ 1504反转相加再反转

题意:给定两个数,将两个数反过来相加再反过来思路:先算反正过来的数,然后再相加,然后再转过来就行了。水题……不多废话了……代码如下:#include#includeusing namespace std;int main(){    int n;    cin>>n;    while(n--)    {        int a,b,p,q,m1=

2013-08-29 13:13:19 698

原创 POJ 1503 大数相加(持续相加)

题意:非两个大数相加,而是连续的大数相加,直到输入0为此。思路:以前我做过一道是两个数的大数相加,所以有些印象,方法也是一样的。设个字符串数组,然后依次相加即可。还是比较容易的,只是我的代码可能有点长,不太简便吧。不过要注意的是,我提交了一次没过,然后找原因才知道,可以输入的字符串第一个字符也可以为0.比如:012345,而不一定输入的是12345,所以只有当字符串长度为1且为0时才退出。

2013-08-29 12:34:02 652

原创 POJ 1493 算空格

题意:有一个25列N行的矩阵,每一行有左边X,和右边X两个X部分,中间只有一个空白部分,如果将所有行的左边X部分同时向右边移动,直到其中某一行与该行的右边X相碰,问这个时候,整个图形中左边X与右边X之间的空格数量。思路:在输入后,统计每一行空格数目,并且找到最少的那个空格数,然后将每一行的空格数去减去最小空格数得到的差之和,就是解。代码如下:#include i

2013-08-29 10:46:15 605

原创 POJ 1450 最短距离

题意:给出一个n×m的矩阵,每个点可以朝上下左右,还有4个斜着的方向走;问从某点出发,走遍所有的点的最短距离,每个点只能经过一次。画下图就知道了。分奇偶讨论。奇数的时候要走斜着的。代码如下:#include using namespace std;int main(){    int n,i=1;    cin>>n;    while(n--)    { 

2013-08-28 23:56:25 693

原创 POJ 1423 求n!有多少位数

思路:10^7次方啊,还要算阶乘的位数……没办法,肯定是用别的方法,很自然的,我想到了算log,只要是10为底的不就是位数了嘛,但是算起来还是和得不到正确的答案,所以百度才知道算n!有这么个强大的公式:一种算法stirling:n!=(2*pi*n)^1/2 *(n/e)^n *e^(a/12*n),   log10(n!) = log10(sqrt(2 * pi * n)) + n *

2013-08-28 23:20:32 649

原创 POJ 1401 求n!阶乘末尾有多少个0

题意:简练的说,就是给一个小于10亿的数,算出它的阶乘的末尾有多少个零,思路:这么大的数,要算是不可能的。关键在于,末尾的零跟什么有关,可以从10这一因子是怎么得出的入手,10的约数只有2和5,所以看2和5的个数就可以了,首先,从n!里面所有数相乘中能被2整除的数一定比能被5整除的多,所以,问题又简化为n!中有多少个5的倍数了。所得的因子5的个数就是n!的末尾零的个数。代码如下:

2013-08-28 22:58:12 692

原创 POJ 1326 算里程

简单题,但是注意下提示:When calculate bonus ,be sure you rounded x.5 up to x+1,需要四舍五入。代码如下:#include#includeusing namespace std;int main(){    string a;    int sum=0;    while(cin>>a&&a!="#") 

2013-08-28 22:37:13 706

原创 POJ 1316 Self Numbers

题意:先给出一个定义如下: d(75) = 75 + 7 + 5 = 87,称75是87的生成者,没有生成者的数称为Self-Number,如 1、 3、 5、 7、9、20、 31、 42、53、64、75、86、97。要求按递增的顺序输出大于0小于10000的所有Self-Number。思路:这题其实挺简单的,标记下谁是谁不是就行了。代码如下:#include#includ

2013-08-28 18:03:17 624

原创 POJ 1298 解密

简单题。代码如下:#include#includeint main(){char n[205];while(gets(n)){if(strcmp(n,"START")==0||strcmp(n,"END")==0) continue;else if(strcmp(n,"ENDOFINPUT")==0) break;else{   int i,l;

2013-08-28 17:10:09 785

原创 POJ 1256 全排列

题意:重要的是这句话:An upper case letter goes before the corresponding lower case letter. So the right order of letters is 'A'思路:刚开始我确实想用next_permutation(b.begin(),b.end())了,但是发现 'A'代码如下:#include#inc

2013-08-28 16:10:06 973

原创 POJ 1218开关问题

题意:一个监狱看守员喝醉了酒,于是把监狱每扇门都打开(假设有n扇门);然后再从1号门开始,隔一扇关一个门(把2的倍数的门关掉);接着再从1号门开始,隔2扇操作一个门(操作3的倍数的门,原来是开的关掉,关着的则打开)。这样一直操作到n的倍数,问最后有多少扇门是打开的。思路:即可是哪个的位数就取反态,最后统计开着的就得了。代码如下:#include #include using n

2013-08-28 14:38:18 714

原创 POJ 1247

纯粹水题。代码如下:#include #include using namespace std;int main(){   int n;   while(cin>>n&&n)   {        int i,a[31],q=0;        for(i=0;i        {            cin>>a[i];         

2013-08-28 12:51:55 664

原创 POJ 1207水题

题意:题目首先给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1,当n为偶数时,n=n/2,如此循环下去直到n=1时停止。现题目要求对任意输入的两个整数i、j,输出i、j之间(包括i、j)的所有数进行上述循环时的最大循环次数(包括n和1)。思路:水题但是确实中了陷阱了,唉,比较i,j然后交换以后就错了,题目要求原样输出,果断中了陷阱…………改为一输入就输出就对了……难过…………

2013-08-28 12:19:05 743

原创 POJ 3176与1163同一道题,只是n不同而已

改下1163题代码中的数组中的n即可AC。代码如下:#include using namespace std;int a[350][351];int main(){   int i,j,n;   cin >> n;   for(i=0;i     for(j=0;j       cin >> a[i][j];   for(i=n-2;i>=0;i--

2013-08-28 11:26:28 632

原创 POJ 1163 最佳路径简单DP

思路:找出最佳路径,使其和值最大,逆向找出最大值,往前推比较简单。此题较为容易,动态规划的简单的题。代码如下:#include using namespace std;int a[101][101];int main(){   int i,j,n;   cin >> n;   for(i=0;i     for(j=0;j       cin >> a[

2013-08-28 11:19:43 901

原创 POJ 1146 字符串的下一个全排列

思路:求出字符串的下一个全排列。刚开始想歪了,然后才记得用STL中algorithm库中的next_permutation函数,然后就搞字,很简单。代码如下:#include #include #include using namespace std;int main(){string a;while(cin>>a&&a!="#"){if(next_perm

2013-08-28 00:40:48 791

原创 POJ 1083移动桌子用时最少

题意:有400个房间,现在要搬一些物品,从room a到roomb 一次搬运需要时间是10分钟,且此次搬运期间room a和room b前的走廊是一直占用的,如果其他的搬运也要经过这些走廊,则它们不能同时进行,互不干扰的搬运可以同时进行。给出一组room a 到room b 问如何安排使搬运时间最小。思路:运用结构体,然后排序,从小到大取最优解就可得到答案。但是这题我做了3个小时了,看起来简单

2013-08-27 00:22:37 627

原创 POJ 1068 括号匹配问题

思路:用模拟法,匹配成功的时候就输出就行了。代码如下:#include#includechar s[100];int p[100],r[100],w[100];int main(){int i,n,t,j;scanf("%d",&t);while(t--){scanf("%d",&n);memset(s,'(',sizeof(s));mems

2013-08-26 19:13:13 800

原创 POJ 1047

题意:判断一个数是不是循环数。思路:最大的数为60位,故为高精度的计算,用字符数组做即可。处理这个地方有个小技巧、就是在这个数字的后面再加上一遍。以142857为例子,就是判断乘积数是否在142857142857字串中即可。比较简单;但是我提交了几次都WA,不知道怎么原因,看了错误的原因才知道字符串的倒转函数strrev函数不得用,又自己做了个解决才得AC,总的来说还是比较简单的,但是编程量大

2013-08-26 13:15:56 710

原创 POJ 1046

题意就是找出16个中与之公式最小的那个出来,用结构体数组很容易就可以做出来了,不多说了,水题一道。代码如下:#include#includeusing namespace std;struct abc{    int x,y,z;}a[17];int main(){    int i,j,k,x,y,z,sum;    for(i=0;i   

2013-08-26 00:05:31 625

原创 POJ 1045

这题纯粹的数学计算,不过我虽然亲自算了一下,刚开始还真是有点困难滴,三角函数换来换去最后算错了;然后对了以后在提交又出问题了,编的内容是一样的,用C++提交就WA,而用C语言提交就AC了,现在还没明白什么回事,晕了,不过还是AC了。代码如下:#include stdio.h>#include math.h>int main(){    int i,n;    doubl

2013-08-25 23:43:02 702

原创 POJ 1028

题意:现对浏览器进行4种操作:后退、前进、转到某一网址、退出。要求对退出以外的每种操作,输出该操作执行后浏览器当前网站的网址。其中定义浏览器首页为http://www.acm.org/。思路:用字符串的一维数组即可解决。但是注意每拜访一个网站,此后的网站就作废了,此网站就是最后一个,即在后退与前进操作中时刻改变最后一个网站的下标。在输入网站的操作中,用一个变量标记输入网站的下标,以便在前进中判

2013-08-25 19:45:29 619

原创 POJ 1013 Counterfeit Dollar

题目:有12枚硬币(标记为A-L),其中有1枚是假币,但不知道假币比真币更轻或更重。Sally借助于天平,设计出一种方案,可以恰好三次测量出谁是假币、比真币更轻或更重。要求你帮助Sally,根据她的测量数据,计算出谁是假币、比真币更轻还是更重。例如一组测量数据为:ABCD EFGH evenABCI EFJK upABIJ EFGH even注意:天平左右的硬币数量

2013-08-22 11:21:29 710

原创 POJ 1008 玛雅日历

题目:玛雅使用两种日历,第一种称为Haab,一年为365天,一年分为19个月,前18个月每个月都是20天,第19个月为5天,每一个月都有一个名字,分别为pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu和uayet,每个月份中的天数用0到19表

2013-08-22 10:12:54 1156

原创 POJ 1007 DNA 排序

题意:分类DNA字符串(只有ACGT四个字符)。但是分类它们的方法不是字典序,而是逆序数,排序程度从好到差。所有字符串长度相同。解题思路:第一感觉就是用结构体数组,结构体中存字符数组和这个字符数组的逆序数。然后用两个for循环求逆序数即可。刚开始编完提交WA,仔细看题目才记得是稳定排序,所以把sort改为stable_sort即可实现稳定排序。编写一个判断的函数使逆序数从小到大排序,最后从头到

2013-08-21 23:42:08 818

原创 POJ 1006

题意:即求三个同时发生时,即周期。再结合中国剩余定理算法,可求出。比较容易,只要理解中国剩余定理就好解了。代码如下:#include#includeusing namespace std;int main(){    int s,p,e,i,d,num=0;    while(scanf("%d%d%d%d",&p,&e,&i,&d)&&p!=-1&&e!=-1&&

2013-08-21 19:32:51 534

原创 POJ 1005

这题容易,所以题意不说了。说说个人感觉吧,刚开始我已经编对了,但是交了多次改了多次,还是WA,我看都快无语了,后面检查了不下10次,才看出输出的时候少了个句号,简直无语完,ORZ……代码如下:#includeusing namespace std;int main(){    int t,i;    cin>>t;    for(i=0;i    {

2013-08-21 11:13:50 561

原创 POJ 1004

题意:这题就是求浮点数的平均值,纯粹数学计算。代码如下:#include#includeusing namespace std;int main(){    double sum=0,n;    for(int i=0;i    {        scanf("%lf",&n);        sum+=n;    }    printf("$%

2013-08-21 00:28:00 583

原创 POJ 1003

题意:纯粹的数学运算,阶加大于所输入的值即可得答案,以前在COJ练这种题目太多了,太容易不累赘讲废话了。代码如下:#include#includeusing namespace std;int main(){    double t;    while(scanf("%lf",&t)&&t!=0.00)    {        int i;       

2013-08-21 00:25:43 654

原创 POJ 1002多重映射:map的用法

487-3279Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 219752 Accepted: 38302DescriptionBusinesses like to have memorable telephone numbers. One way to

2013-08-21 00:21:26 876

原创 假期小结

暑假其实没什么刷题,也不知道刷了多少道,反正记得没刷多少题;因为在学校的时候觉得和别人的C++解题能力相差太大,所以回来专攻C++中的STL,结合算法竞赛入门经典那本书,然后自己做的练习题,因此并没刷题。现在也对STL有了较多的认识与应用,但毕竟STL有很多函数,还没完全的应用完,而且还在攻克中。所以我想学会STL中的函数和所教的算法以后再进行针对性的刷题。    对于以后的发展方向:当然是把

2013-08-19 13:16:11 1113

原创 hdu 1392求凸包(即求包围所有树的最短距离)

1392题意:给出多组数据,每组数据包含横纵坐标,即树的位置,然后求出包围所有树的最短距离。个人心得:由于第一次写博客心得,所以可能格式有太会写。本题最重要的是彻底理解凸包的概念,还有一些实际应用中的处理,因为刚开始没有理解清楚,所以误入歧途,搞了好久才AC,因为刚开始接触较高深的算法,所以理解起来有些困难,但是把算法弄明白也就解决了。思路:在所有点中选取y坐标最小的一点P0。然后按照其它

2013-08-17 23:15:52 991 2

空空如也

空空如也

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

TA关注的人

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