hdu 2554 N对数的排列问题 【数学】

来源:互联网 发布:南京行知教育集团 编辑:程序博客网 时间:2024/05/04 00:24

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2554

题意:中文题目就不说了。

假设每个数 i 的第一次出现位置是ai ,第二次出现的位置是 bi,则可以推导出又所以解得sum of ai= n*(3n-1)/4; 要保证解为正整数。

代码:

#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>#include <math.h>#include <ctype.h>#include <time.h>#include <queue>#include <iterator>#include <vector>#include <set>using namespace std;long long n;int main(){    while (cin >> n && n)    {        if (n % 4 == 0 || n*(3 * n - 1) % 4 == 0)            puts("Y");        else             puts("N");    }    return 0;}
0 0
原创粉丝点击