AOJ,PKU 3問

アバター
五反田
記事: 21
登録日時: 15年前
住所: 千葉

AOJ,PKU 3問

投稿記事 by 五反田 » 14年前

大学の授業で解いたので、せっかくだからコードを貼りつけたいと思います。

aoj2007
http://rose.u-aizu.ac.jp/onlinejudge/Pr ... 07&lang=jp
夏休み前半に頑張っていたけれど9月頃からだれて全く手を付けていなかったので久しぶりのAOJでした。
同じ授業を受けていた人はこの問題を20行ちょいで解いていたので、こんな方法しか思い浮かばなかったのが悲しかったです。

CODE:

#include

using namespace std;

struct t_num_;
typedef struct t_num_ t_num;

typedef struct t_num_{
	int m10,m50,m100,m500;
	t_num operator+(const t_num&obj){
		t_num_ t;
		t.m10=this->m10+obj.m10;
		t.m50=this->m50+obj.m50;
		t.m100=this->m100+obj.m100;
		t.m500=this->m500+obj.m500;
		return t;
	}
	t_num operator-(const t_num&obj){
		t_num t;
		t.m10=this->m10-obj.m10;
		t.m50=this->m50-obj.m50;
		t.m100=this->m100-obj.m100;
		t.m500=this->m500-obj.m500;
		return t;
	}
	int sumn(){
		return m10+m50+m100+m500;
	}
	int summoney(){
		return m10*10+m50*50+m100*100+m500*500;
	}
	void print(){
		cout>n){
		if(!n)break;
		if(!start_flag)cout>e10>>e50>>e100>>e500;
		
		t_num mai={e10,e50,e100,e500};
		t_num mint={100,100,100,100};
		t_num ans;
		
		
		for(int i=0;iwatasu.summoney())continue;
						t_num ttemoto=mai-watasu;
						if(mint.sumn()>nturi(watasu.summoney()-n).sumn()+ttemoto.sumn()){
							mint=nturi(watasu.summoney()-n)+ttemoto;
							ans=watasu;
						}
					}
				}
			}
		}
		if(ans.m10)cout
#include
#include
#include

using namespace std;

int main(){
  int ins;
  string ttcrib,tcrib;
  cin>>ins;
  for(int i=0;i>n;
    string ss;
    for(int j=0;j>s;
      if(s==' '){
	--j;
	continue;
      }
      ss+=s;
    }
    //    cout>crib;
    //cout
#include
#include

using namespace std;

int main(){
  int m,n;
  map dic;
  
  cin>>m>>n;
  string ss;  
  for(int i=0;i>ss;
    int tt;
    cin>>tt;
    dic[ss]=tt;
  }

  for(int i=0;i>ss){
      if(ss==".")break;
      cost+=dic[ss];
    }
    cout<<cost<<endl;
  }
  return 0;
}
この3問を90分で解ける人がいるので、何とかしてその人達に追いつきたいところです。

コメントはまだありません。