标签:745 int LL Codeforces cin 答案 Div include 2n
思路:
答案是(2n)!/2,不知道啥原理,靠样例猜。
题目的描述是:
而这种情况答案是(2n)!/2,这占了全排列一半的情况,那么另一半的情况应该是
即这种情况答案应该也是(2n)!/2
而这个题防止意外可以用快速模,但是最关键的点在于,这个除以二要怎么处理,如果把得出的答案最后除以二,是不行的,因为这个答案是你模完之后的答案。
我们可以这么做,就是遇到第一个偶数的时候先把答案除以二,或者直接循环从3开始,因为2除以二就是1,那直接从3开始也是一样的。
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <queue> #define x first #define y second using namespace std; typedef long long LL; typedef pair<int, int>PII; const int N = 200010; const LL MOD = 1000000007; int main() { ios::sync_with_stdio(false); cin.tie(0); int T; cin >> T; while (T--) { int n; cin >> n; LL res = 1; for (int i = 3; i <= 2 * n; i++) res = (res % MOD * i % MOD) % MOD; printf("%lld\n", res); } return 0; }
标签:745,int,LL,Codeforces,cin,答案,Div,include,2n 来源: https://www.cnblogs.com/yctql/p/15358878.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。