hdu 5100
题意:给你一个k*1的方块,让你去填充n*n的大方块,求最多能填充多少地方?
这个是bc上的一道题,当初做的时候,一直在找它的规律,反正当时是没做出来.........
后来才知道这个题目有公式可以套,
首先是分情况n<k的时候,输出0,否则判断n%k<=k/2,如果符合输出n*n-(n%k)^2,否则输出n*n-(k-(n%k))^2
证明有点烦,这里我贴出来,愿意的就去看吧......
http://www.matrix67.com/blog/archives/5900
AC代码:
#include <iostream> using namespace std; int main() { ios::sync_with_stdio; int t,n,k; cin>>t; while(t--) { cin>>n>>k; if(n<k) cout<<"0"<<endl; else { int m = n%k; if(m<=k/2) cout<<n*n-m*m<<endl; else cout<<n*n-(k-m)*(k-m)<<endl; } } return 0; }