プログラミングコンテストの問題について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
lpluser

プログラミングコンテストの問題について

#1

投稿記事 by lpluser » 12年前

プログラミングコンテストの問題について
プログラミングコンテストに参加していくつか問題を解いたのですが,なかなか○にならないので質問します
(どちらの問題についても,テストデータの一部で✖になっています。テストデータはわからないので、どうも悩んでいます・・

[1]http://arc010.contest.atcoder.jp/submissions/90133
[2]http://kupc2013.contest.atcoder.jp/submissions/90175
よろしくお願いします。


アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: プログラミングコンテストの問題について

#3

投稿記事 by みけCAT » 12年前

ライオンの方は、「ライオンの数の合計が最大になるもの」という条件に引っかかっているようです。

コード:

3 5 2
1 2 2
2 3 2
で撃墜できるようです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

lpluser

Re: プログラミングコンテストの問題について

#4

投稿記事 by lpluser » 12年前

問題の読み間違いでしたか・・以下のコードで[1]はたぶん正解できたと思います。提出しすぎたのか判定待ちでとまっているのですが。。
//京都大学プログラミングコンテスト2013 B-ライオン
//2013.7.21
//製作時間 約1.5h
#include "stdio.h"

int n,x,m,i,j,p;
int l[10];
int r[10];
int s[10];
int t[6],tt[6];
int b=0;
int max=0;

int main(){

scanf("%d %d %d",&n,&x,&m);
for(i=0; i<m; i++) scanf("%d %d %d",&l,&r,&s);

int flag=1;

for(t[0]=0;t[0]<x+1;t[0]++){
for(t[1]=0;t[1]<x+1;t[1]++){
for(t[2]=0;t[2]<x+1;t[2]++){
for(t[3]=0;t[3]<x+1;t[3]++){
for(t[4]=0;t[4]<x+1;t[4]++){
for(t[5]=0;t[5]<x+1;t[5]++){
for(p=n;p<6;p++) t[p]=x+1;
flag=1;
for(j=0;j<m;j++){
int a=0;
for(i=l[j]-1;i<r[j];i++) a+=t;
if(a != s[j]) {
flag=0;
}
}
if(flag==1){
b=0;
for(p=0;p<n;p++) {
b+=t[p];
}
if((b>max)&&(max!=0)){
max=b;
for(p=0;p<n;p++) {
tt[p]=t[p];
}
}
}

}}}}}}

if(flag==1){
for(i=0;i<n-1;i++){
printf("%d",tt);
printf(" ");
}
printf("%d\n",tt[n-1]);
}else{
printf("-1");
}
return 0;
}

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: プログラミングコンテストの問題について

#5

投稿記事 by みけCAT » 12年前

提示されたコードで[1]は多分WAになると思います。コードタグを使用していただけたらありがたいです。

超大型連休の方ですが、例えば今の日付が2月なら、1月に相当する日に変換するには、
2月ではなく1月の日数を足さなければいけません。その後の月も同様に1個前の月の日数を足してください。
撃墜ケースは

コード:

1
2/10
です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: プログラミングコンテストの問題について

#6

投稿記事 by みけCAT » 12年前

No.4のコードを「ライオン」に提出してもWAになると思います。
なぜ無駄なmax!=0の判定をしているのかがわかりません。
最後に解が出たかどうかをflag==1で判定しているのもおかしいです。
さっきと同じケースで撃墜できます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

lpluser

Re: プログラミングコンテストの問題について

#7

投稿記事 by lpluser » 12年前

超大型連休について、中学受験レベルの暦計算勘違いしてたんですね・・・
http://arc010.contest.atcoder.jp/submissions/90195
訂正したらACになりました。
ライオンのほうは、もうすこし自分で考えてみます.

受験勉強しながらプログラミングの勉強するのはやはりダメですね。。

閉鎖

“C言語何でも質問掲示板” へ戻る