【POJ】【今日刷的POJ水题合集】【#1】

传送门:http://poj.org/problem?id=1543


今天在wikioi上好不容易把天梯的题都刷光了,以为能"国家队员"结果TM还是“集训队员”,怒了,在洛谷OJ上交了30+以前做过的题,又去刷刷poj的水题安抚自己受伤的心灵~~~

P1543:

题意:

求满足a^3=b^3+c^3+d^3(a<=n b,c,d>1)的数

Code:

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long lld;
lld sum[101];
int n;
int main(){
	for(int i=1;i<=100;i++)
	sum[i]=i*i*i;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=2;j<i;j++){
			for(int k=j+1;k<=i;k++){
				lld d=sum[i]-sum[j]-sum[k];
				lld a=(int)(pow(d,0.333333)+0.5);
				if(a*a*a==d&&a>=k&&a<=i){
					printf("Cube = %d, Triple = (%d,%d,%d)\n",i,j,k,a);
				}
			}
		}
	}
	return 0;
}


P3062

读入什么就输出什么……= =、

Code:

#include<iostream>
#include<string>
using namespace std;
string s;
int main(){
while(getline(cin,s)){cout<<s<<endl;}
return 0;
}

P1163

经典的数字三角形,唉……十年前的IOI现在被人随便虐……

Code:

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int f[101][101];
int d[101][101];
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=i;j++)
		cin>>d[i][j];
	f[1][1]=d[1][1];
	for(int i=2;i<=n;i++)
	for(int j=1;j<=i;j++){
		f[i][j]=max(f[i-1][j],f[i-1][j-1])+d[i][j];
	}
	int maxx=0;
	for(int i=1;i<=n;i++)
	maxx=max(maxx,f[n][i]);
	cout<<maxx<<endl;
	return 0;
}

P2153

题意:班里有n个人,考了m次试,分数是累加的,求每次考完后Li Ming 的rank值

蒟蒻居然想用平衡树来搞,faebdc神犇告诉我O(n)算法后吓哭了……

Code:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
int sor[100001];
int n,m;
int Li;
string s;
map<string,int>M;
int main(){
	scanf("%d",&n);
	getchar();
	for(int i=1;i<=n;i++){
		getline(cin,s);
		M[s]=i;
		if(s=="Li Ming")
		Li=i;
	}cin>>m;
	while(m--){
		for(int i=1;i<=n;i++){
			int x;
			cin>>x;getchar();
			getline(cin,s);
			while(s[0]==' ')s.erase(0,1);
			int man=M[s];
			sor[man]+=x;
		}
		int rank=1;
		for(int i=1;i<=n;i++){
			if(i==Li)continue;
			if(sor[i]>sor[Li])
			rank++;
		}
		printf("%d\n",rank);
	}
	return 0;
}



你可能感兴趣的:(poj)