NBUT OJ 1641 错误的算法 暴力题

来源:互联网 发布:名器大魔王推荐知乎 编辑:程序博客网 时间:2024/06/05 15:14

                 说是说暴力题可确实卡了我好久。。。。没有看到题目的第一句话"如果答案不唯一,输出任意解即可”,也就是意味着正确答案是会有多个的。。。但是我以为正确答案也会只有一个。。。。所以一开始判定方法是判断错误算法的行和列是不是和正确的一样,后来改成了判断值是不是一样就A了,,,,,诶。。。果然还是经验不够。。5000ms,完全可以跑暴力。。



#include<cstdio>#include<cstring>using namespace std;int r,c,arr[505][505],row[505],col[505],maxr,rw,maxc,cw,maxm,rr,cr,times=1;int main(){    while(scanf("%d%d",&r,&c)!=EOF){        for(int i=1;i<=r;++i)        for(int j=1;j<=c;++j)            scanf("%d",&arr[i][j]),row[i]+=arr[i][j],col[j]+=arr[i][j];        for(int i=1;i<=r;++i)        if(row[i]>maxr)            maxr=row[i],rw=i;        for(int i=1;i<=c;++i)        if(col[i]>maxc)            maxc=col[i],cw=i;        for(int i=1;i<=r;++i)        for(int j=1;j<=c;++j)        if(row[i]+col[j]-arr[i][j]>maxm)            maxm=row[i]+col[j]-arr[i][j],rr=i,cr=j;        printf("Case %d: %s\n",times++,((row[rw]+col[cw]-arr[rw][cw]==maxm)?"Weak":"Strong"));        maxr=maxc=maxm=0;        memset(row,0,sizeof(int)*(r+1));        memset(col,0,sizeof(int)*(c+1));    }}

1 0
原创粉丝点击