最大の利益のアルゴリズム審査研修
リソースの制約
制限時間:1.0秒メモリ制限:256.0メガバイト
問題の説明
チャクラが入るように、食品および飲料業界では最近、若い起業家です。彼は、国に市場を開放Nホテルの合計を買いました。早期の市場調査では、彼は一日M期間に分割されます、そしてあなたは私のj番目の期間中に目のホテル、AijのとBijのがあるだろう知っているクライアントの値が訪れたときにアテンダントビット。彼はまた、ホテルのさまざまなニーズに異なる期間を解析し、j番目の期間におけるi番目のホテル、顧客のCIJ元あたりの平均消費量を取得します。ブランドイメージを作成するためには、チャクラは、各レストランでは、唯一、フロントAの顧客までのすべてのウェイター(より多くの日の部分よりも、顧客の数がより多くのスタッフの数以上である場合、顧客は、店舗で消費することはできません)毎日オープンしている期間を選択することにしました。
起業家の目的は、最終的には利益。営業時間を手配し、ずっとまで費やしチャクラの日の合計を教えてください。
入力フォーマット
最初の行の2つの整数N、M。
第二行は順次所定の3つの行列A(N M)、B(N M)、C(N * M)。
出力形式の
ライン整数、最大の総支出。
サンプル入力
2 3
1 2 3
3 2 1
3 1 2
1 2 3
4 5 2
。3. 1. 6
サンプル出力
16
のデータサイズと表記
。1 <= M、N <= 100
。1 <= AijをBijの、の<= 5000
0 <= Cijの<= 10 ^ 9
アイデア:最初はかなりAijを、BijのとCijとを表す3つの数字の各行、質問の意味と後で見つけ矛盾し、3で見てみましょうが見つかったが、それを行うには、行列全体の代表であることを質問の意味を理解していませんでしたシンプル。各マトリクス入力値は、次に、顧客の数よりも付随大きい決定、(大きい値、又は長い長い長であってもよい)、顧客数が平均消費電流期間利益を乗じて(Cijがある= CijがあるBijの)、そうでなければ付随乗算平均消費量は、(セルCijが=セルCijは、あるのAijを)、次いで塩基当たり利益はホテルをソートするたびに、最大利益のレストラン各ブロック周期和は、対象に評価します。
コードは以下の通りであります:
#include<stdio.h>
int main(){
long long a[105][105],b[105][105],c[105][105],t=0,l;
int n,m,i,j,k;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%lld",&a[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%lld",&b[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%lld",&c[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]>b[i][j]){
c[i][j]*=b[i][j];
}
else{
c[i][j]*=a[i][j];
}
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
for(k=0;k<m;k++){
if(c[i][j]<c[i][k]){
l=c[i][j];
c[i][j]=c[i][k];
c[i][k]=l;
}
}
}
}
for(i=0;i<n;i++){
t+=c[i][m-1];
}
printf("%lld",t);
return 0;
}