USACO/ratios 3.2.4
2013-05-01 22:42
267 查看
简单题,不知道怎么写了半天 ,真是捉急了,暴搜就好了,代码如下,就是要注意下0什么的
#include <stdio.h> #include <stdlib.h> int main() { FILE *fin=fopen("ratios.in","r"); FILE *fout=fopen("ratios.out","w"); int mixture[5][5]={0}; int ans1[100]={0},ans2[100]={0},ans3[100]={0}; int i,j,k,p,f=0,t,m; int check[4]={0}; int min=10000,min1,min2,min3; for(i=0;i<4;i++) { for(j=0;j<3;j++) { fscanf(fin,"%d",&mixture[i][j]); } } for(i=0;i<100;i++) { for(j=0;j<100;j++) { for(k=0;k<100;k++) { memset(check,0,sizeof(check)); for(p=0;p<3;p++) { check[p]=i*mixture[1][p]+j*mixture[2][p]+k*mixture[3][p]; } if(i||k||j) { for(p=0;p<3;p++) { if(mixture[0][p]&&!(check[p]%mixture[0][p])) { t=check[p]/mixture[0][p]; break; } } if(check[0]==mixture[0][0]*t &&check[1]==mixture[0][1]*t &&check[2]==t*mixture[0][2]) { ans1[f]=i; ans2[f]=j; ans3[f]=k; f++; } } } } } if(f==0) { fprintf(fout,"NONE\n"); return 0; } else { for(i=0;i<f;i++) { if(ans1[i]+ans2[i]+ans3[i]<min) { min=ans1[i]+ans2[i]+ans3[i]; min1=ans1[i]; min2=ans2[i]; min3=ans3[i]; t=(min1*mixture[1][1]+min2*mixture[2][1]+min3*mixture[3][1])/mixture[0][1]; } } } fprintf(fout,"%d %d %d %d\n",min1,min2,min3,t); return 0; }
相关文章推荐
- [USACO3.2.4 Feed Ratios]
- USACO3.2.4--Feed Ratios
- usaco3.2.4 Feed Ratios
- USACO3.2.4 Feed Ratios (ratios)
- 【USACO题库】3.2.4 Feed Ratios饲料调配
- USACO3.2.4 Feed Ratios (ratios)
- [USACO3.2.4 Feed Ratios]
- 【USACO题库】3.2.4 Feed Ratios饲料调配
- USACO 3.2.4 Feed Ratios
- 【例题】【高斯消元】USACO3.2.4 Feed Ratios
- USACO 3.2.4 feed ratios
- [USACO]Feed Ratios
- 【搜索】【USACO】Feed Ratios
- USACO / Feed Ratios (枚举||克莱姆法则||高斯消元)
- [U]3.2.4 Feed Ratios 枚举
- USACO Section 3.2 Feed Ratios(解三元一次方程)
- usaco-3.2-ratios-pass
- USACO section 3.2 Feed Ratios(高斯定理)
- USACO Feed Ratios 解题报告
- USACO--3.2Feed Ratios