传送门: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;
}