poj1002:电话上按键对应着数字。现在给n个电话,求排序。相同的归一类
poj1003:求最小的n让1+1/2+1/3+...+1/n大于给的一个实数
poj1004:求一堆实数的平均数
poj1005:由坐标 (0,0) 开始,以半圆为形状每年侵蚀50m^2,问(0,0)开始到(x,y)结束需要多长时间
poj1006:三个周期是常数。现在给三个周期出现高峰的时候,问下一次出现高峰是什么时候
poj1007:求字符串排序
poj1008:一种日历,计算日期数量
poj1012:Joseph问题
poj1013:给3次称硬币的结果问哪个是假币且假币比真币轻还是重
poj1016:一个数串这样变化:它的后继是:它含有几个1,含有几个2...问循环情况
poj1017:1×1,2×2,3×3,4×4,5×5,6×6的产品放到6×6×h的盒子里。求h最小值。
poj1028:模拟网页浏览
poj1031:求一个点是否在凸包里面
poj1032:把n分成若干个不同的数的和,求最大乘积
【2+3+...如果多出来就从最大一个数开始加1】
poj1045:数学公式
poj1046:给16个底色,后给若干个颜色问与前面哪个距离最小?
poj1051:一个字符串,每个字母都有一个代替。现在把那个代替又代了一些回去,求原串。
poj1056:给若干个字符串,问是否有一个是另外一个的前缀?
【其实可以用trie来做,不过暴力可过】
poj1061:给出两只青蛙的坐标(一条经线上),每个青蛙条一次的距离,问跳多少次可以碰到?
poj1065:处理n个木棍,每个木棍有两个参数。如果一个前面一个处理的不比它大就可以不用转换时间,否则需要1个时间。问最少转换时间?
poj1083:一共400个房间,南边200个北边200个。从一个房间搬东西到另外一个房间需要10min,此期间其他人就不能通过这段路,一个房间最多一次搬入或者搬出。
【统计每段路通过几次求max】
poj1118:给若干个点求含最多点的直线含点数
poj1146:求一个字符串后面一个字典序
【next_permutation函数】
poj1183:arctan(1/a)=arctan(1/b)+arctan(1/c),给出a,求b+c最小的解
【数学推导】
poj1207:每个数进行如下操作:如果是偶数/2,如果是奇数*3+1。问一个区间内可以操作操作次数最多的那个数的操作次数
【直接做就可以过】
poj1218:求1-n之间有多少个平方数
poj1256:求一个字符串的全排列
【next_permutation函数】
poj1298:字母替换问题
poj1517:求i=0-9 e=∑0<=i<=n1/i!的数值
poj1657:给棋盘上的起始点和终止点,求王、后、车、象的最短距离
poj1833:求后面一个字典序
【next_permutation函数】
poj1835:模拟一个宇航员运动。(三维,左转右转上转下转前转后转)
poj1936:给两个s和t两个字符串。问t删去一些字符后是否可与s相同
poj2027:比较两个数的大小
poj2159:俩密码。问前面一个可不可能是后一个的原码。
【相同字母数相同】
poj2262:对1000000内的偶数进行哥德巴赫猜想
poj2606:给若干个点求含最多点的直线含点数
poj2656:有n天,如果一天的上课时间+课外时间>8就不开心。求最早一天不开心的时间。
poj2663:2×1的多米诺牌来覆盖3×n的长方形问方案数
poj2739:求一个数可以表示成多少种连续素数的和。
poj2780:给若干个点求含最多点的直线含点数
poj3006:给一个数列(首相公差),求这个数列中第n个素数
poj3087:不停洗牌,问多少次后可以达到目标状态?
poj3094:把输入的再输出
poj3175:给一个字符串,求那个整数的开方的小数部分前n个有效数位即该字符串?
poj3299:有三个变量和推导公式,任给两个求第三个。
poj3589:猜数游戏判断两个数有多少A和B
poj3618:每次一个人到离原点最近的一个景点(有正负)求最多能经过多少个景点?
poj3619:每个人读书有速度,读了一定时间会停下来。求每个人读完多少页需要多少时间
poj3620:求最大的一个连通块
poj3627:求最少的人让他们的高度超过一个数字
poj3663:给n个数字。问有多少对数字和<=s
poj3664:两轮投票,第一轮前m位进入第二轮;第二轮最高票为冠军
poj3665:每次取最大的一个数,然后把它评分给剩下n-1个数,不能平分就从1号数开始加。求取数顺序
poj3671:n个1和2,问至少修改多少个数可以让整个序列有序?(1在前2在后)
poj3672:上坡需要时间下坡需要时间平坡需要时间。现在给你去的路线求回去路线的需要时间
poj3673:另类乘法,两个数各个位上的数乘积的和
poj3749:解密一个字符串。每个字符串都是原先字母后推5个字
//网上搜的水题,适合新手熟悉练习基本算法
//POJ 1002
#include "stdio.h"
#include "iostream"
typedef struct
{
char b[]="22233344455566677778889999";
char str[14];
}NUM;
int map(NUM a[],int j,int k)
{
if(a[j].str[k]>=0&&a[j].str[k]<=9)
return a[j].str[k];
if(a[j].str[k]>='A'&&a[j].str[k]<='Y')
return a[j].b[str[k]-'A'];
}
int main()
{
NUM a[n],t;
int m=0,i,j,cnt=0;
cin>>n;
while(m<n)
{
cin>>a[m].str>>endl;
len=strlen(a[m].str);
for(i=0;i<len;i++)
{
if(i>=0&&i<3||i>3)
a[m].str[i]=map(a,m,i);
if(i==3)
a[m].str[i]="-";
}
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(strcpy(a[i].str,a[j].str)>0)
{t=a[i].str;
a[i].str=a[j].str;
a[j].str=t;
}
}
for(i=0;i<n;i++)
{
t=a[i].str;
for(j=i+1;j<n;j++)
if(strcpy(t,a[j].str)==0)
cnt++;
else break;
cout<<t<<" "<<cnt<<endl;
}
return 0;
}
//POJ 1003
#include <iostream>
using namespace std;
int main()
{
int cards;
double length,c;
cin>>c;
while(c!=0.0)
{
for(cards=0,length=0.0;length<c;)
{
cards++;
length+=1/(cards*1.0+1);
}
cout<<cards<<" "<<"card(s)"<<endl;
cin>>c;
}
return 0;
}
//POJ 1004
#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
float a,s=0.0;
for(int i=0;i<12;i++)
{
cin>>a;
s+=a;
}
cout<<"$"<<setiosflags(ios::fixed)<<setprecision(2)<<s/12<<endl;
system("pause");
return 0;
}
//POJ 1005
#include<iostream>
#define PI 3.1415926
using namespace std;
int main()
{
int i,n,year;
double x,y,area;
cin>>n;
for(i=0;i<n;i++)
{
cin>>x>>y;
area=PI*(x*x+y*y)/2;
year=(int)(area/50)+1;
cout<<"Property "<<i+1<<": This property will begin eroding in year "<<year<<"."<<endl;
}
cout<<"END OF OUTPUT."<<endl;
}
//POJ 1006
#include <iostream>
using namespace std;
int main()
{
int p,e,i,d,day;
int k,j=1,w;
cin>>p>>e>>i>>d;
while(p+1&&e+1&&i+1&&d+1)
{
p%=23;e%=28;i%=33;
for(k=1,w=i;k<=21253/33;k++)
{
if((w-e)%28==0&&(w-p)%23==0)
{
day=w-d;
if(day<=0)
day+=23*28*33;
cout<<"Case "<<j++<<":"<<" the next triple peak occurs in "<<day<<" days./n";
break;
}
w=33*k+i;
}
cin>>p>>e>>i>>d;
}
return 0;
}
//POJ 1007
#include <iostream>
#include <stdlib.h>
using namespace std;
struct ele
{
int num;
char str[50];
}s[101];
int cmp(const void *a,const void *b)
{
return (*(ele *)a).num>(*(ele *)b).num?1:-1;
}
int main()
{
int i,len,n,j,k;
cin>>len>>n;
for(i=0;i<n;i++)
{
s[i].num=0;
cin>>s[i].str;
for(j=1;j<len;j++)
for(k=0;k<j;k++)
{
if(s[i].str[j]<s[i].str[k])
s[i].num++;
}
}
qsort(s,n,sizeof(s[0]),cmp);
for(i=0;i<n;i++)
cout<<s[i].str<<endl;
system("pause");
return 0;
}
//POJ 1008
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
char *H[19] ={ "pop","no","zip","zotz","tzec",
"xul","yoxkin","mol","chen","yax",
"zac","ceh","mac","kankin","muan",
"pax","koyab","cumhu","uayet"};
char *T[20] ={"imix","ik","akbal","kan","chicchan","cimi",
"manik","lamat","muluk","ok","chuen","eb",
"ben","ix","mem","cib","caban","eznab",
"canac","ahau"};
int main()
{
int i,j,n;
int date=0,year=0;
int total=0;
char mon[19];
char c;
cin>>n;
cout << n << endl;//这道题,WRONG了几把,哎,没看清输出也要3,无语~~~
for(i=0;i<n;i++)
{
cin>>date>>c>>mon>>year;
// cout<<mon;
for(j=0;j<19;j++)
if(strcmp(mon,H[j]) == 0 )
break;
total=date+j*20+year*365;
cout<<total%13+1<<" "<<T[total%20]<<" "<<total/260<<endl;
}
system("pause");
return 0;
}