ADV-caikuang
2024-10-16 20:38:23
#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; }
最新文章
- lintcode循环数组之连续子数组求和
- .NET3.5项目转.NET2.0项目技巧
- nginx https ssl 设置受信任证书[原创]
- 查看kernel log命令
- typeahead使用配置参数。
- unity3d 制造自己的水体water effect(一)
- 每天一个linux命令(43)--netstat命令
- NLTK学习笔记(四):自然语言处理的一些算法研究
- python - 常用模块栗子
- IP地址与域名的关系
- SVN上传的时候没法显示文件名,只显示后缀名
- stm32 堆溢出
- 「Android」 Surface分析
- 使用keytool自建证书及应用
- Django初识 学习笔记一
- LAMP简介与部署
- vue router.push(),router.replace(),router.go()
- 后台拿webshell方法(2)
- RHEL 6.5系统安装配置图解教程(rhel-server-6.5)
- Failed to place enough replicas