HDU4572-Bottles Arrangement-找规律
2016-04-08 21:28
253 查看
题意:每一列都是1-m不重复。每一行,相邻两个数相差不能超过一。求各行之和的最大值最小是多少。
YY出的结论。。
第一行n n-1 n-2 n-3在1和n之间来回反弹
第二行n-1 n n n-1 同样反弹
第三行n-2 n-3 同样反弹反弹的时候注意奇数行先向下,偶数行先向上。
YY出的结论。。
第一行n n-1 n-2 n-3在1和n之间来回反弹
第二行n-1 n n n-1 同样反弹
第三行n-2 n-3 同样反弹反弹的时候注意奇数行先向下,偶数行先向上。
#include<bits/stdc++.h> using namespace std; int n,m; int main() { while(scanf("%d%d",&m,&n)!=EOF) { int maxn=0; for(int i=m;i>=1;i--) { int ans=0; int lef=n; if((m-i)&1) { if(m-i+1>=n) { ans=(i+i+n-1)*n/2; } else { ans=(i+m)*(m-i+1)/2; lef-=m-i+1; if(lef<=m) { ans+=(m+m-lef+1)*lef/2; } else { ans+=m*(m+1)/2; lef-=m; ans+=lef*(lef+1)/2; } } } else { if(i>=n) { ans=(i+i-n+1)*n/2; } else { ans=i*(i+1)/2; lef-=i; if(lef<=m) { ans+=lef*(lef+1)/2; } else { ans+=m*(m+1)/2; lef-=m; ans+=(m+m-lef+1)*lef/2; } } } maxn=max(maxn,ans); } printf("%d\n",maxn); } return 0; }
相关文章推荐
- setObject()用法
- 【bzoj1031】[JSOI2007]字符加密Cipher
- jquery.validate全攻略
- ubuntu 普通用户改为管理员模式方法
- 树莓派
- 京东2016 实习《C++开发岗》在线编程题
- jquery-问题解答
- switch体内部优化运行原理
- c++ 嵌套类
- [2016.4][京东暑期实习笔试]三子棋
- 【LeetCode】66. Plus One
- 关于程序运行空间、存储、链接文件的分析
- JAVA中获取当前系统时间
- Android JNI 调用.so动态库
- POJ 3126 Prime Path
- 结对编程 开发项目
- 基础DOM和CSS操作
- Linux进程退出--exit与return的区别
- 京东笔试题 年终奖
- 8个排序算法的稳定性总结