标签:ret bsp div sha for ++ amp stdin oid
#include<stdio.h>
int step[99][99];
int sum;
int min=999999;
int cas; int N;
int H; int V;
int C1;
int R1;
int M1;
int C2;
int R2;
int M2;
int ans[15];
int bu[15];
int ju[15];
void ji(int n)
{
int i;
int j;
int a;
for(i=0;i<H;i++)
{
sum=0;
for(j=0;j<i;j++)
{
sum=sum+C1*step[n][j];
}
if(sum>min)
continue;
for(a=j;a<H;a++)
{
sum=sum+C2*step[n][a];
}
if(sum>min)
continue;
if(H-1-i-i==0||H-1-i-i==-1||H-1-i-i==1)
{
if(min>sum)
{
min=sum;
}
}
else
{
if(H-1-i-i>0)
sum=sum+(H-1-i-i)*R2;
else
sum=sum-(H-1-i-i)*R1;
if(min>sum)
{
min=sum;
}
}
}
}
void qu(int a,int st)
{
if(st==N)
{
sum=0;
for(int i=0;i<N;i++)
sum=sum+bu[i];
for(int i=0;i<=N-2;i++)
sum=sum+(M1*M1+M2*M2)*(ju[i+1]-ju[i]);
if(min>sum)
{
min=sum;
}
return;
}
for(int i=a;i<V;i++)
{
ju[st]=i;
bu[st]=ans[i];
qu(i+2,st+1);
}
}
int main()
{ freopen("in.txt","r",stdin);
int o=1;
int r;
scanf("%d",&cas);
while(o!=cas+1)
{
scanf("%d%d%d",&N,&H,&V);
for(int i=0;i<V;i++)
{
for(int j=0;j<H;j++)
{
scanf("%d",&step[i][j]);
}
}
scanf("%d%d%d",&C1,&R1,&M1);
scanf("%d%d%d",&C2,&R2,&M2);
for(int a=0;a<V;a++)
{
min=999999;
ji(a);
ans[a]=min;
r=a;
}
if(r==0)
{
printf("Case #%d\n",o);
printf("%d\n",min);
}
else
{
qu(0,0);
printf("Csae #%d\n",o);
printf("%d\n",min);
}
o++;
}
return 0;
}
标签:ret bsp div sha for ++ amp stdin oid
原文地址:http://www.cnblogs.com/liunx1109/p/6229946.html