摘要:
暴力果断超时 下面给出一个大神的证明:http://www.cnblogs.com/devymex/archive/2010/08/07/1799713.html这是一道数论题,用数学的语言描述就是:x, y, z∈N,给定一个数n,找出所有的x, y, z ≤ n,使得x2+ y2= z2成立。如果要穷举所有的x, y, z的话,按照题目所给的数据量,肯定是无法在限定时间内完成的。考虑利用毕达哥拉斯数的性质生成所有的x, y, z来解决,数学推导简要介绍如下:先假定x, y, z两两互质,由于x, y互质,故x, y中至少有1个是奇数。下面用反证法证明x和y中有且只有1个奇数。假定x, y都 阅读全文
摘要:
就是问在一个n*m的棋盘里最多能放多少个knight,一开始想是回溯么,最后一想不是;分为三种情况 n==1 || m==1 这种都明白n==2 || m==2 这种情况下要除4,商乘4加上对余数的处理(画图后一目了然)最后一种是n*m/2,不能整除时加一#include #include #include #include using std::min;using std::max;int n,m;int solve(){ int a=min(n,m); int b=n+m-a; if(a==1) return b; else if(a==2) {... 阅读全文