- gf25031 的博客
上次没做完的题
- @ 2026-4-1 17:39:19
https://www.bcoi.cn/p/NOIP2007J2T1?tid=69cbf682ed3a654ca6721a39
#include<bits/stdc++.h>
using namespace std;
int n;
int a[114514][4];
int s[6][2];
int main(){
cin>>n;
if(n>=5){
for(int i=1;i<=n;i++){
cin>>a[i][1];
cin>>a[i][2];
cin>>a[i][3];
a[i][4]=a[i][1]+a[i][2]+a[i][3];
if(i<=5){
s[i][1]=i;
s[i][2]=a[i][4];
}else{
for(int j=1;j<=5;j++){
if(a[i][4]>s[j][2]){
s[j][1]=i;
s[j][2]=a[i][4];
for(int j1=1;j1<=5;j1++){
if(a[j][4]>s[j1][2]){
s[j1][1]=j;
s[j1][2]=a[j][4];
for(int j2=1;j2<=5;j2++){
if(a[j1][4]>s[j2][2]){
s[j2][1]=j1;
s[j2][2]=a[j1][4];
break;
}
}
break;
}
}
break;
}
}
}
}
for(int i=1;i<=5;i++){
for(int j=i;j<=5;j++){
if(s[i][2]<s[j][2]){
swap(s[i][2],s[j][2]);
swap(s[i][1],s[j][1]);
}
}
}
for(int i=1;i<=5;i++){
cout<<s[i][1]<<" "<<s[i][2]<<endl;
}
}else{
for(int i=1;i<=n;i++){
cin>>a[i][1];
cin>>a[i][2];
cin>>a[i][3];
a[i][4]=a[i][1]+a[i][2]+a[i][3];
a[i][0]=i;
}
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(a[i][4]<a[j][4]){
swap(a[i][4],a[j][4]);
swap(a[i][1],a[j][1]);
swap(a[i][2],a[j][2]);
swap(a[i][3],a[j][3]);
swap(a[i][0],a[j][0]);
}else{
continue;
}
}
}
for(int i=1;i<=n;i++){
cout<<a[i][0]<<" "<<a[i][4]<<" "<<a[i][1]<<" "<<a[i][2]<<" "<<a[i][3]<<endl;
}
/*
4
1 1 1
13 13 13
6 6 6
6 6 6
*/
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n;
int a[4][114514666];
int h[4];
int hanoi(int num,int fr,int to){
if(num==1){
return 1;
}
if(fr==1){
if(to==2){
if(a[fr][h[fr]]<a[to][h[to]]){
return hanoi(num-1,2,1)+1;
}else{
return hanoi(num-1,2,3)+1;
}
}
}
if(fr==2){
if(a[fr][h[fr]]<a[to][h[to]]){
return hanoi(num-1,1,2)+1;
}else{
return hanoi(num-1,1,3)+1;
}
}
if(fr==3){
if(a[fr][h[fr]]<a[to][h[to]]){
return hanoi(num-1,1,2)+1;
}else{
return hanoi(num-1,1,3)+1;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
a[1][i]=i;
}
h[1]=n;
h[2]=0;
h[3]=0;
cout<<hanoi(n-1,1,2);
return 0;
}