hdu 4708(暴力+找规律)
来源:互联网 发布:linux多线程编程 书籍 编辑:程序博客网 时间:2024/06/07 01:06
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708
思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数,然后把所有的符合条件的都加入数组中,最后排序即得。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 struct Node{ 8 int sum,step; 9 }node[11][11],ans[11][11];10 11 int n,p,k;12 int map[11][11];13 14 int cmp(const Node &p,const Node &q)15 {16 if(p.sum!=q.sum){17 return p.sum>q.sum;18 }19 return p.step<q.step;20 }21 22 int main()23 {24 while(~scanf("%d",&n)&&n){25 for(int i=1;i<=n;i++)26 for(int j=1;j<=n;j++)27 scanf("%d",&map[i][j]);28 p=k=0;29 for(int i=1;i<=n/2;i++){30 p++;31 k=0;32 for(int j=i;j<=n-i;j++){33 node[p][k].sum=map[i][j]+map[n-i+1][n-j+1]+map[j][n-i+1]+map[n-j+1][i];34 node[p][k].step=min(j-i,n-i+1-j);35 // cout<<node[p][k].sum<<endl;36 k++; 37 }38 sort(node[p],node[p]+k,cmp);39 // for(int i=0;i<k;i++)cout<<node[p][i].sum<<"**"<<node[p][i].step<<endl;40 }41 int ans1=0,ans2=0;42 for(int i=1;i<=p;i++){43 ans1+=node[i][0].sum;44 ans2+=node[i][0].step;45 }46 printf("%d %d\n",ans1+map[n/2+1][n/2+1],ans2);47 }48 return 0;49 }50
0 0
- hdu 4708(暴力+找规律)
- hdu 5084 HeHe(暴力/找规律)
- HDU Just do it (找规律暴力)
- hdu (找规律)
- hdu5917Instability(找规律+暴力)
- HDU 1085(暴力;找规律;树状数组;母函数)
- hdu 5512 Pagodas【暴力打表+找规律】
- hdu 2608(找规律)
- hdu 1165(找规律)
- hdu 5439(找规律)
- hdu 6129(找规律)
- hdu 5963(找规律)
- HDU 5500+HDU 1097 (找规律)
- UVA 10970 Big Chocolate(暴力,找规律)
- 【UVALive】2037 - Digital Rivers(找规律,暴力)
- hdu 1005 找规律(循环点)
- hdu 2709 Sumsets (找规律)
- hdu 1013 Digital Roots (找规律)
- php5.3.x连接sql server 2005 (php5.3连接mssql)
- hdu 3667(拆边+最小费用最大流)
- hdu 1011(树形dp)
- hdu 2412(树形dp)
- hdu 4715(打表)
- hdu 4708(暴力+找规律)
- hdu 3905(dp)
- hdu 4714(树形dp)
- hdu 3899(树形dp)
- hdu 4003(树形dp)
- hdu 2196(求树上每个节点到树上其他节点的最远距离)
- hdu 2809(状压dp)
- hdu 1561(树形dp)
- hdu 1520(简单树形dp)