| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:啊啊啊啊,为什么我的总是WA,哪位大侠给看下……In Reply To:啊啊啊啊,为什么我的总是WA,哪位大侠给看下…… Posted by:zgsxzdl at 2010-07-17 22:58:01 > #include <iostream>
> #include <stdio.h>
> #include <cmath>
> using namespace std;
>
> #define min(x,y) x<y?x:y
> #define M 8
>
> int d[15][M+1][M+1][M+1][M+1] = {0};
> int s[M+1][M+1] = {0};
> int c[M+1][M+1] = {0};
> int n;
>
> void pre()
> {
> int i,j;
> for(i = 0;i <= M;i++)
> s[i][0] = 0;
> for(j = 0;j <= M;j++)
> s[0][j] = 0;
> for(i = 1;i <= M;i++)
> for(j = 1;j <= M;j++)
> s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + c[i][j];
> }
> int f(int i_min,int j_min,int i_max,int j_max)
> {
> int temp = s[i_max][j_max] - s[i_min-1][j_max] -s[i_max][j_min-1] +s[i_min-1][j_min-1];
> return temp*temp;
> }
> int main()
> {
> int i,j,k,a,b,temp;
> int x1,y1,x2,y2,min_a,min_b;
> int sum = 0;
> double x,ans;
> scanf("%d",&n);
> for(i = 1;i <= M;i++)
> {
> for(j = 1;j <= M;j++)
> {
> scanf("%d",&c[i][j]);
> sum += c[i][j];
> }
> }
> x = (double)sum/n;
>
> pre();
>
> for(x1 = 1;x1 <= M;x1++)
> {
> for(y1 = 1;y1 <= M;y1++)
> {
> for(x2 = 1;x2 <= M;x2++)
> {
> for(y2 = 1;y2 <= M;y2++)
> {
>
> d[0][x1][y1][x2][y2] = f(x1,y1,x2,y2);
> }
> }
> }
> }
>
> for(k = 1;k < n;k++)
> {
> for(x1 = 1;x1 <= M;x1++)
> {
> for(y1 = 1;y1 <= M;y1++)
> {
> for(x2 = 1;x2 <= M;x2++)
> {
> for(y2 = 1;y2 <= M;y2++)
> {
> min_a = INT_MAX;
> for(a = x1;a < x2;a++)
> {
> temp = min(d[k-1][x1][y1][a][y2]+d[0][a+1][y1][x2][y2],d[k-1][a+1][y1][x2][y2]+d[0][x1][y1][a][y2]);
> if(min_a > temp)
> min_a = temp;
> }
>
> min_b = INT_MAX;
> for(b = y1;b < y2;b++)
> {
> temp = min(d[k-1][x1][y1][x2][b]+d[0][x1][b+1][x2][y2],d[k-1][x1][b+1][x2][y2]+d[0][x1][y1][x2][b]);
> if(min_b > temp)
> min_b = temp;
> }
>
> d[k][x1][y1][x2][y2] = min(min_a,min_b);
> }
> }
> }
> }
> }
> ans = (double)d[n-1][1][1][8][8]/n - x*x;
> ans = sqrt(ans);
> printf("%.3f\n",ans);
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator