SWJTU2017-6月月赛 G-A Easy Counting Problem[数论][乘法逆元]

传送门:http://www.swjtuoj.cn/problem/2397/





题解:产生交点的条件为4个点构成四边形对角线产生交点,最大解当产生的交点位置完全不相同时存在。答案为$C_{\text{n}}^4$

计算组合数时需要使用乘法逆元

代码:

 1 #define _CRT_SECURE_NO_DEPRECATE
 2 #pragma comment(linker, "/STACK:102400000,102400000")
 3 #include<iostream>
 4 #include<cstdio>
 5 #include<fstream>
 6 #include<iomanip>
 7 #include<algorithm>
 8 #include<cmath>
 9 #include<deque>
10 #include<vector>
11 #include<assert.h>
12 #include<bitset>
13 #include<queue>
14 #include<string>
15 #include<cstring>
16 #include<map>
17 #include<stack>
18 #include<set>
19 #include<functional>
20 #define pii pair<int, int>
21 #define mod 1000000007
22 #define mp make_pair
23 #define pi acos(-1)
24 #define eps 0.00000001
25 #define mst(a,i) memset(a,i,sizeof(a))
26 #define all(n) n.begin(),n.end()
27 #define lson(x) ((x<<1))
28 #define rson(x) ((x<<1)|1)
29 #define inf 0x3f3f3f3f
30 typedef long long ll;
31 typedef unsigned long long ull;
32 using namespace std;
33 const int maxn = 1e4 + 5;
34 ll poww(ll m, int n)
35 {
36     ll ans = 1;
37     ll temp = m;
38     while (n)
39     {
40         if (n & 1)
41             ans *= temp;
42         temp *= temp;
43         ans %= mod;
44         temp %= mod;
45         n >>= 1;
46     }
47     return ans%mod;
48 }
49
50 int main()
51 {
52     ios::sync_with_stdio(false);
53     cin.tie(0); cout.tie(0);
54     int T;
55     ll n;
56     cin >> T;
57     while (T--)
58     {
59         cin >> n;
60         ll temp = n;
61         for (ll i = 1; i <= 3; ++i)
62         {
63             ll tt = poww(i + 1, mod - 2);
64             temp = (temp*(n - i)) % mod;
65             temp = (temp*tt) % mod;
66         }
67         cout << temp << endl;
68     }
69     return 0;
70 }
时间: 2024-10-10 07:54:56

SWJTU2017-6月月赛 G-A Easy Counting Problem[数论][乘法逆元]的相关文章

SWJTU2017-6月月赛 C-H1Z1[数论][乘法逆元]

传送门:http://www.swjtuoj.cn/problem/2393/ 题意:计算nm的每个点到n*m每个位置的曼哈顿距离和 题解:考虑先计算每个点到x方向的距离和.设当前点为(X,Y),因为每一行在x方向距离和相同,所以只需算一行的距离然后乘n行.一行x方向距离和公式为两个等差数列的和$\frac{{(m - x) + (m - x + 1) + (x - 1)x}}{2}$ 由于要计算每个点的距离和,和之前的方法一样,计算一行的然后乘n行.${\text{dis = }}\frac{

[Lydsy2017年4月月赛]抵制克苏恩

[Lydsy2017年4月月赛]抵制克苏恩 时间限制: 1 Sec  内存限制: 128 MB提交: 49  解决: 34[提交][状态][讨论版] 题目描述 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英雄,并且可以用牌召唤至多 7 个随从帮助玩家攻击对手,其中每个随从也拥有自己的血量和攻击力.小Q同学有很多次游戏失败都是因为对手使用了克苏恩这张牌,所

西电oj 6月月赛

西电oj 6月月赛 最近确实比较累,加上天气很热,宿舍一群人在打游戏,同时由于本身自己思维题做的不多,所以这次月赛自然而然的被虐了. 不过还是写写总结,顺便留坑以后补题解. A题,水题,但最近手速慢下来了,得多做题了. B题,水题,虽然题面看半天没懂,交了两次WA之后还是过了,看错题对手速狗来说是绝对不允许出现的,WA也不应该在能做的题出现. C题,这题很多人过了.这次没做出来只能说是运气不好,这种题做出来算自己运气好,做不出来算运气不好.这次这道题是用总情况减去掉异构的情况,最后得到答案,奇数

【BZOJ 4832 】 4832: [Lydsy2017年4月月赛]抵制克苏恩 (期望DP)

4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 275  Solved: 87 Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英雄,并且可以用牌 召唤至多 7 个随从帮助玩家攻击对手,其中每个随从也拥有自己的血量和攻击力.小Q同学

bzoj 4836: [Lydsy2017年4月月赛]二元运算 -- 分治+FFT

4836: [Lydsy2017年4月月赛]二元运算 Time Limit: 8 Sec  Memory Limit: 128 MB Description 定义二元运算 opt 满足 现在给定一个长为 n 的数列 a 和一个长为 m 的数列 b ,接下来有 q 次询问.每次询问给定一个数字 c 你需要求出有多少对 (i, j) 使得 a_i  opt b_j=c . Input 第一行是一个整数 T (1≤T≤10) ,表示测试数据的组数. 对于每组测试数据: 第一行是三个整数 n,m,q (

【BZOJ4883】[Lydsy2017年5月月赛]棋盘上的守卫 KM算法

[BZOJ4883][Lydsy2017年5月月赛]棋盘上的守卫 Description 在一个n*m的棋盘上要放置若干个守卫.对于n行来说,每行必须恰好放置一个横向守卫:同理对于m列来说,每列 必须恰好放置一个纵向守卫.每个位置放置守卫的代价是不一样的,且每个位置最多只能放置一个守卫,一个守卫 不能同时兼顾行列的防御.请计算控制整个棋盘的最小代价. Input 第一行包含两个正整数n,m(2<=n,m<=100000,n*m<=100000),分别表示棋盘的行数与列数. 接下来n行,每

4832: [Lydsy2017年4月月赛]抵制克苏恩]【解题报告】

戳我 4832: [Lydsy2017年4月月赛]抵制克苏恩 时间限制: 1 Sec  内存限制: 128 MB提交: 752  解决: 289[提交][][] 题目描述 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英雄,并且可以用牌 召唤至多 7 个随从帮助玩家攻击对手,其中每个随从也拥有自己的血量和攻击力.小Q同学有很多次游戏失败都是 因为对手使用

USACO银组12月月赛题解

USACO银组12月月赛题解 Convention 题面 一场别开生面的牛吃草大会就要在Farmer John的农场举办了! 世界各地的奶牛将会到达当地的机场,前来参会并且吃草.具体地说,有N头奶牛到达了机场(1≤N≤105),其中奶牛i在时间ti(0≤ti≤109)到达.Farmer John安排了M(1≤M≤105)辆大巴来机场接这些奶牛.每辆大巴可以乘坐C头奶牛(1≤C≤N).Farmer John正在机场等待奶牛们到来,并且准备安排到达的奶牛们乘坐大巴.当最后一头乘坐某辆大巴的奶牛到达的

csu-2018年11月月赛Round2-div2题解

csu-2018年11月月赛Round2-div2题解 A(2193):昆虫繁殖 Description 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月产y对卵,每对卵要过两个月长成成虫.假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0=<X<=20,1<=Y<=20,X=<Z<=50 Input 单组数据 x,y,z的数值 Output 过Z个月以后,共有成虫对