![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pku
cokin-tan
Coding之路,永无止境
展开
-
pku 1002 487-3279
http://acm.pku.edu.cn/JudgeOnline/problem?id=1002本题大意是把输入的电话号码规范化并排序、并输出所有不同的电话号码、以及其出现的次数代码如下:#include#include#include#include#include#includeusing namespace std;#define MAX 100000int caseNum;int counter[MAX]; //全局变量自动初始化为0bool duplicate=false;vector原创 2010-07-31 13:30:00 · 275 阅读 · 0 评论 -
pku 2136 Vertical Histogram
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2136<br />题意:统计一串字符中A~Z的个数,然后输出柱状图形。#include<stdio.h>#include<iostream>usingnamespace std;char str[74];int number[26];voidWork(){int i,j,temp;memset(number,0,sizeof(number));for(j =0;j <4;j ++){ cin.get原创 2010-08-19 08:21:00 · 3320 阅读 · 0 评论 -
pku 1017 Packets
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1017<br />题意是给你面积大小为1*1,2*2,3*3,4*4,5*5,6*6的物品个数,问最少需要几个6*6的包包来装。<br />#include <stdio.h><br />int res[4] = {0,5,3,1};<br />int main()<br />{<br /> int a,b,c,d,e,f,x,y,total,sum;<br /> while(1)<br /> {<br原创 2010-08-21 20:47:00 · 347 阅读 · 0 评论 -
pku 1032 Parliament
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1032<br />把一个数分成几个数相加、使得这几个数的长度最大:<br />#include <stdio.h><br />int main()<br />{<br /> int a[100] = {0};<br /> int number,y,i,sum = 0,k = 0;<br /> while(scanf("%d",&number) != EOF)<br /> {<br /> sum = 0;原创 2010-08-21 20:53:00 · 276 阅读 · 0 评论 -
pku 2243 Knight Moves
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2243<br />题意:求由给定的位置A走到B所需要的最少的步伐数目。<br />宽度优先搜索。#include<iostream>#include<queue>#include<cstdio>usingnamespace std;structPoint{int x,y,sum;Point(int x=0,int y=0,int s=0):x(x),y(y),sum(s){//}};int step[8]原创 2010-08-22 13:55:00 · 278 阅读 · 0 评论 -
pku 2421 Constructing Roads
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2421<br />题意:在几个村庄之间修路,使得所花费的费用最少。<br />最小生成树。#include<cstdio>#include<iostream>usingnamespace std;int map[101][101];bool intree[101];int dis[101];int number;voidRead(){int i,j;int q,x,y;for(i =1;i <= numb原创 2010-08-22 14:01:00 · 321 阅读 · 0 评论 -
pku 2524 Ubiquitous Religions
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2524<br />题意:给你学生人数,以及宗教信仰相同的学生的编号、求出最多宗教信仰的个数。#include<cstdio>#include<iostream>usingnamespace std;int Father[50010];int Number[50010];int Max;voidMake_Set(int number)//构建集合{int i;for(i =1;i <= number;i +原创 2010-08-23 14:52:00 · 276 阅读 · 0 评论 -
pku 1915 Knight Moves
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1915<br />题意:问骑士由A到B最少要走多少步。#include<cstdio>#include<queue>#include<iostream>usingnamespace std;structPoint{int x;int y;int sum;Point(int x =0,int y =0,int s =0):x(x),y(y),sum(s){//}};bool flag[301][301];i原创 2010-08-23 14:55:00 · 368 阅读 · 0 评论 -
pku 1028 Web Navigation
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1028<br />模拟浏览器的前进后退功能:<br />#include <stdio.h><br />#include <string.h><br />typedef struct link<br />{<br /> char Address[70];<br /> struct link *prior;<br /> struct link *next;<br />}Link;<br />Link* He原创 2010-08-21 20:52:00 · 308 阅读 · 0 评论 -
pku 3737 UmBasketella
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=3737<br />题意:求出给定表面积的圆锥的最大体积、高、底面圆半径。<br />/*S=pi*r*l + pi*r*r<br />l=sqrt(r*r+h*h), 联立得, r*2= s*s/(pi*pi*h*h+2*pi*s)<br />V=(1/3)*pi*r*r*h,代入r*2,求导,令一阶导数为0,得出结果<br />h=sqrt(2*s/pi)<br />r=sqrt(s*s/(pi*pi*原创 2010-08-20 10:14:00 · 289 阅读 · 0 评论 -
pku 1042 Gone Fishing
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1042<br />题意:在规定的时间内钓鱼的数量最多,枚举加贪心<br />#include <iostream><br />#include <cstdio><br />using namespace std;<br />int n,h,f[30],f1[30],d[30],t[30];<br />int chazhao(int n)//查找鱼最多的岛<br />{<br /> int i,falg =原创 2010-08-21 20:54:00 · 388 阅读 · 0 评论 -
pku 1847 Tram
http://acm.pku.edu.cn/JudgeOnline/problem?id=1847题意:求由起始点A到B的最短路径中要开多少次转弯灯开关。用floyd算法,记得在第一个十字路口的时候不需要开转弯灯开关。#include<stdio.h>int key[101][101];int number,start,end;intmin(int a,int b)//求最小值函数{return a<b ? a:b;}voidFloyd(){int i,j,k;for(k =1;k <= number;k原创 2010-08-22 13:45:00 · 321 阅读 · 0 评论 -
pku 2395 Out of Hay
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2395<br />题意:是求出最小生成树的最大边。<br />PS:注意有重边。#include<cstdio>#include<iostream>usingnamespace std;int n,m;long map[2010][2010];int dis[2010];bool intree[2010];voidRead(){int i,j;int a,b;long l;for(i =1;i <= n;原创 2010-08-23 15:01:00 · 336 阅读 · 0 评论 -
pku 2538 WERTYU
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2538<br />题意:将所输入的键盘字符用左边的字符将其替代,输入的字符可能包括数字,空格、大写字母(除了‘Q’,‘A’,‘Z’)或者上面出现过的标点。#include<stdio.h>#include<string.h>char str[60]="`1234567890-=QWERTYUIOP[]//ASDFGHJKL;'ZXCVBNM,./";char a[100];voidFind()//寻找字符原创 2010-08-20 10:11:00 · 356 阅读 · 0 评论 -
pku 1023 The Fun Number Syst
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1023<br />特殊的二进制转换<br />#include <stdio.h><br />int main()<br />{<br /> int time,length;<br /> __int64 number;<br /> char str[70];<br /> scanf("%d",&time);<br /> while(time --)<br /> {<br /> scanf("%d%s%I原创 2010-08-21 20:51:00 · 354 阅读 · 0 评论 -
pku 1321 棋盘问题
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1321<br />期盼问题,中文题目,题意不再赘述。<br />用深度优先搜索。#include<cstdio>#include<iostream>usingnamespace std;char board[9][9];bool flag[9];int n,k;int count,number;voiddfs(int x,int y){int i,j;if(number == k)//判断棋子数是否满足条原创 2010-08-22 13:48:00 · 308 阅读 · 0 评论 -
pku 2488 A Knight's Journey
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2488<br />题意:给定p,q 求由任意位置开始访问,以何种路径能够访问完这个p*q的矩阵。<br />深度优先搜索。#include<cstdio>#include<iostream>usingnamespace std;typedefstruct{char x;char y;}Step;//路径节点结构体int point[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},原创 2010-08-22 14:05:00 · 262 阅读 · 0 评论 -
pku 2182 Lost Cows
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2182<br />题意:给出数的个数、以及这些数的逆序数、求出这些数的顺序。#include<cstdio>#include<iostream>usingnamespace std;typedefstructlineTree{int left;int right;int total;}LineTree;LineTree tree[30000];int data;int k,data_j;int n原创 2010-08-23 14:58:00 · 298 阅读 · 0 评论 -
pku 2551 Ones
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2551<br />题意:有些数值时由全1组成的、给定一个数字n、求出是n的倍数的最小全1数字是几位数。#include<stdio.h>intmain(){__int64 number,a;int dig;while(scanf("%I64d",&number)!= EOF){ a = dig =1;while(a){ a = a*10+1; dig ++; a = a%nu原创 2010-08-18 22:32:00 · 263 阅读 · 0 评论 -
pku 2833 The Average
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2833<br />题意是求出去n1个最大值,n2个最小值后剩下的数的平均值,由于内存限制、不能完全存储、所以选择存储n1个最大值和n2个最小值,然后再用总和减去它们即可!#include<cstdio>#include<algorithm>usingnamespace std;__int64 max_t[11],min_t[11],total,data;intmain(){int i,n1,n2,n;do原创 2010-08-18 22:21:00 · 236 阅读 · 0 评论 -
pku 2316 SPIN
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2316<br />题意:给你一些数。让它们相加后,在每一位上模10取余则得到新数,不进位,相当于大数相加的改版。#include<stdio.h>char str1[11],str2[11];voidWork(){int i;scanf("%s",str1);while(scanf("%s",str2)!= EOF){ i =0;while(str2[i]!='/0'){ str1[i]=(原创 2010-08-19 08:15:00 · 247 阅读 · 0 评论 -
pku 1003 Hangover
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1003<br />题目大意是第n张card有1/n超出桌子、问需要能够不超过输入的数a的最多张数cards<br />代码如下:<br />#include <stdio.h><br />int main()<br />{<br /> double a,sum;<br /> int n;<br /> scanf("%lf",&a);//输入数据<br /> while(a!=0)<br /> {<br /原创 2010-07-31 13:43:00 · 270 阅读 · 0 评论 -
pku 1005 I Think I Need a Houseboat
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1005<br />题目大意是一个半圆的面积、其有圆心开始以每年50的速度扩张、问需要经过几年才能够淹没到指定的点:<br />代码:<br />#include <stdio.h><br />#include <math.h><br />int main()<br />{<br /> float r1,r2,x,y,squre;<br /> int i = 0,j = 0,number;<br /> sc原创 2010-07-31 13:51:00 · 321 阅读 · 0 评论 -
pku 1006 Biorhythms
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1006<br />此题属于枚举题、<br />代码如下:<br />#include <stdio.h><br />int main()<br />{<br /> int p,e,i,d,n = 0,k;<br /> scanf("%d%d%d%d",&p,&e,&i,&d);<br /> while(p != -1 && e != -1 && i != -1 && d != -1)<br /> {<br原创 2010-07-31 13:54:00 · 328 阅读 · 0 评论 -
pku 1016 Numbers That Count
http://acm.pku.edu.cn/JudgeOnline/problem?id=1016判断一个数结果变换后是否是self_number 或者 loop_number 或者经过15次变换后三名数都不是;变换规则是第二个数是第一个数的数字以及其出现的次数组合而成的。#include #include char str[17][90];int main(){ int i = 0,length,j,k,l,m,a,n,flag; scanf("%s",str[0]); while(strcmp(str[原创 2010-08-01 00:22:00 · 230 阅读 · 0 评论 -
pku 1004 Financial Management
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1004<br />什么都不说、水题、直接贴代码:<br />#include <stdio.h><br />int main()<br />{<br /> float array[12],sum = 0,ave;<br /> int i ;<br /> for(i = 0;i<12;i++)<br /> scanf("%f",&array[i]);<br /> for(i = 0;i<12;i++)<b原创 2010-07-31 13:46:00 · 292 阅读 · 0 评论 -
pku 1007 DNA Sorting
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1007<br />#include<iostream><br />#include<string><br />#include<algorithm><br />#include<vector><br />using namespace std;<br />#define MAX 102<br />int linenum,num;<br />int counter;<br />typedef struct{原创 2010-08-01 00:18:00 · 237 阅读 · 0 评论 -
pku 1008 Maya Calendar
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1008<br />日历转换问题;<br />#include <stdio.h><br />#include <string.h><br />char HaabMonth[19][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koy原创 2010-08-01 00:19:00 · 251 阅读 · 0 评论 -
pku 1012 Joseph
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1012<br />#include <stdio.h><br />int main()<br />{<br /> int arr[15],i,k,m = 0,bad,rest;<br /> for(i = 0; i < 15; i ++)<br /> arr[i] = 0;<br /> scanf("%d",&k);<br /> while(k != 0)<br /> {<br /> m = 0;<b原创 2010-08-01 00:20:00 · 209 阅读 · 0 评论 -
pku 1013 Counterfeit Dollar
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1013<br />找出假币问题,输入三次数据以及结果、然后找出哪个币是假的。枚举<br />#include <stdio.h><br />#include <string.h><br />char left[3][7],right[3][7],result[3][5];<br />bool isLight(char x)<br />{<br /> int i;<br /> for(i = 0;i < 3原创 2010-08-01 00:21:00 · 409 阅读 · 0 评论 -
pku 2575 Jolly Jumper
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2575<br />题意是给你n个数、看其相邻的数的差是否是由1~n-1组成、若是、则为Jolly Jumper 、否则不是。#include<cstdio>#include<cmath>#include<iostream>usingnamespace std;int data[3010],number;bool in[3010];intmain(){int i,flag;while(scanf("%d",原创 2010-08-19 08:10:00 · 353 阅读 · 0 评论 -
pku 3404 Bridge over a rough river
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=3404<br />题意:有n个人要过桥、但是桥只能同时承受两个人、问所有人要过桥所用的最短时间。<br />/*以下是构造N个人(N >= 1)过桥最佳方案的方法:<br />1)如果N=1或者N=2,所有人直接过桥。<br />2)如果N=3,由最快的人往返一次把其他两人送过河。<br />3)如果N>=4,设A,B为走的最快的和次快的旅行者,过桥所需时间分别为a,b;而Z,Y为走得最慢的和次慢的旅行者原创 2010-08-20 09:44:00 · 305 阅读 · 0 评论 -
pku 1700 Crossing River
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1700<br />题意:此题与3404如出一辙,问所有人通过河流所使用的最短时间。<br />此题我使用递归实现的,耗时较3404多;<br />/*以下是构造N个人(N >= 1)过桥最佳方案的方法:<br />1)如果N=1或者N=2,所有人直接过桥。<br />2)如果N=3,由最快的人往返一次把其他两人送过河。<br />3)如果N>=4,设A,B为走的最快的和次快的旅行者,过桥所需时间分别为a,原创 2010-08-20 09:51:00 · 432 阅读 · 1 评论 -
pku 2780 Linearity
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2780<br />题意是求最多有几颗星星在一条线上#include<stdio.h>typedefstruct{int x;int y;}Point;Point p[1001];int number;voidRead(){int i;for(i =0;i < number;i ++)scanf("%d%d",&p[i].x,&p[i].y);}voidWork(){int count,max =0原创 2010-08-18 22:10:00 · 230 阅读 · 0 评论 -
pku 3749 破译密码
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=3749<br />题意是按照规定的方式破译密码。#include<iostream>#include<string>usingnamespace std;string data ="VWXYZABCDEFGHIJKLMNOPQRSTU";intmain(){int i; string str;while(getline(cin,str)&& str !="ENDOFINPUT"){if(str原创 2010-08-18 22:29:00 · 333 阅读 · 0 评论 -
pku 1673 EXOCENTER OF A TRIANGLE
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1673<br />题意归结到最后就是求三角形的锤心。由三角形的锤心公式可求得:<br />垂心: <br />A(x1,y1)B(x2,y2)C(x3,y3),垂心H(x0,y0) <br />用斜率是负倒数关系Kbc=y3-y2/x3-x2 Kah=y1-y0/x1-x0 Kah=-1/Kbc <br />得到方程(y3-y2)/(x3-x2)=-(x1-x0)/(y1-y0) <br />同理可得方程原创 2010-08-19 08:05:00 · 292 阅读 · 0 评论 -
pku 2272 Bullseye
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2272<br />题意是求两射击员的得分,然后比较谁胜利了。#include<stdio.h>#include<math.h>intdistance(double x,double y)//计算得分的函数{double dis; dis =sqrt(x*x + y*y);//计算半径if(dis <=3)return100;elseif(dis <=6)return80;elseif(dis <=9)原创 2010-08-19 08:30:00 · 269 阅读 · 0 评论 -
pku 2629 Common permutation
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2629<br />题意:找出两个字符串中的最大公共序列、可以是不连续的、按字典顺序输出。#include<cstdio>#include<string.h>#include<algorithm>usingnamespace std;char str1[1010],str2[1010],com[1010];voidWork(){int i,j,a,b,k; a =strlen(str1); b =s原创 2010-08-20 09:59:00 · 392 阅读 · 0 评论 -
pku 2140 Herd Sums
<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2140<br />题意:给出一个数n,求n可以被分解成多少组连续的书相加。/*假设a,a+1,a+2...a+k ,为一组符合的答案有(k+1)a+0.5*k*(k+1)=n成立划成(a + 0.5*k)(k+1)=n观察等式发现必须满足1. 0.5*k为整数. 所以k是偶数2. (k+1) 为n的因数,并且 (k+1) 为奇数所以综上n有多少个奇因数,就是本题的答案*/#include<stdio.h>原创 2010-08-23 15:03:00 · 306 阅读 · 0 评论