Chino with Equation 不定方程

£神魔★判官ぃ 2022-09-10 01:26 116阅读 0赞

假设未知数m个

不定方程,用插板法来想,

求正整数解:m个桶,放n件东西,每个桶至少一件: C(n-1, m-1)

求非负数解:C(n+m-1, m-1)

看m和的数据范围,用什么方式求组合数

可以用费马小定理

  1. // Problem: Chino with Equation
  2. // Contest: NowCoder
  3. // URL: https://ac.nowcoder.com/acm/contest/553/D
  4. // Memory Limit: 524288 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8. #include<iostream>
  9. #include<cstdio>
  10. #include<string>
  11. #include<ctime>
  12. #include<cmath>
  13. #include<cstring>
  14. #include<algorithm>
  15. #include<stack>
  16. #include<climits>
  17. #include<queue>
  18. #include<map>
  19. #include<set>
  20. #include<sstream>
  21. #include<cassert>
  22. #include<bitset>
  23. #include<list>
  24. #include<unordered_map>
  25. using namespace std;
  26. #define ff first
  27. #define ss second
  28. #define lowbit(x) (x&-x)
  29. #define pf(a) printf("%d\n",a)
  30. #define mem(x,y) memset(x,y,sizeof(x))
  31. #define dbg(x) cout << #x << " = " << x << endl
  32. #define rep(i,l,r) for(int i = l; i <= r; i++)
  33. #define fep(i,a,b) for(int i=b; i>=a; --i)
  34. typedef pair<int,int> PII;
  35. typedef long long ll;
  36. typedef unsigned long long ull;
  37. const int inf=0x3f3f3f3f;
  38. const ll mod = 1e9 + 7;
  39. const int N=2e6+100;
  40. ll n, m;
  41. ll fac[N];
  42. vector<int> v(N);
  43. ll qmi(ll a, ll b)
  44. {
  45. ll res = 1;
  46. while(b)
  47. {
  48. if(b&1) res = res * a % mod;
  49. a = a * a % mod;
  50. b>>=1;
  51. }
  52. return res;
  53. }
  54. void init()
  55. {
  56. fac[0] = 1;
  57. for(ll i = 1; i < N; i ++ ) fac[i] = fac[i-1] * i % mod;
  58. }
  59. ll cal(ll n, ll m)
  60. {
  61. if(n < 0 or m < 0 or n < m) return 0;
  62. ll ans = fac[n];
  63. ans = ans * qmi(fac[m], mod-2) % mod;
  64. ans = ans * qmi(fac[n-m] ,mod-2) % mod;
  65. return ans;
  66. }
  67. void solve()
  68. {
  69. init();
  70. cin >> m >> n;
  71. cout << cal(n-1, m-1) << " " << cal(n+m-1, m-1) << endl;
  72. }
  73. int main()
  74. {
  75. ios::sync_with_stdio(false);cin.tie(0);
  76. solve();
  77. return 0;
  78. }

发表评论

表情:
评论列表 (有 0 条评论,116人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Equation

    \\(Equation\\) ![m6aGge.png][] 这道题目把式子两面移一下项,变为 \\\[a\_1\x\_1+a\_3\x\_3+a\_5\x\_5=

    相关 F. chino with ball

    题目大意 有 N N N 个小球在光滑水平的地上,初始速度有三种情况, − 1 , 0 , 1 -1, 0, 1 −1,0,1 求 k k k 秒后各个小球的位置