D - Sasha and the Drawing思路:拿上面的图形例子来说可以发现每一个格子无论怎样,对角线都会遍历两遍,也只有两遍,那么如果对角线是偶数只要除以2就是最少需要的格子数了,如果是奇数那么就加1再除2,但是也有个特殊情况,也就是对角线正好是所有都遍历一遍时,那么格子数就得加一才行(例图如上)
ac:
#include "iostream"
using std::cin;
using std::cout;
using std::endl;
int t;
unsigned long long sum;
unsigned long long n, k;
int main() {
cin >> t;
while (t--) {
sum = 0;
cin >> n >> k;
if (k % 2) {
sum = (k + 1) / 2;
}
else sum = k / 2;
if ((n + n - 1) * 2 == k)sum++;
cout << sum << endl;
}
}