A    璀璨光滑

留坑。

B    电音之王

蒙特马利大数乘模运算

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef unsigned long long u64;
  6. typedef __int128_t i128;
  7. typedef __uint128_t u128;
  8.  
  9. struct Mod64 {
  10. Mod64() :n_() {}
  11. Mod64(u64 n) :n_(init(n)) {}
  12. static u64 init(u64 w) { return reduce(u128(w) * r2); }
  13. static void set_mod(u64 m) {
  14. mod = m; assert(mod & );
  15. inv = m; for (int i = ; i < ; ++i) inv *= - inv * m;
  16. r2 = -u128(m) % m;
  17. }
  18. static u64 reduce(u128 x) {
  19. u64 y = u64(x >> ) - u64((u128(u64(x)*inv)*mod) >> );
  20. return ll(y)< ? y + mod : y;
  21. }
  22. Mod64& operator += (Mod64 rhs) { n_ += rhs.n_ - mod; if (ll(n_)<) n_ += mod; return *this; }
  23. Mod64 operator + (Mod64 rhs) const { return Mod64(*this) += rhs; }
  24. Mod64& operator -= (Mod64 rhs) { n_ -= rhs.n_; if (ll(n_)<) n_ += mod; return *this; }
  25. Mod64 operator - (Mod64 rhs) const { return Mod64(*this) -= rhs; }
  26. Mod64& operator *= (Mod64 rhs) { n_ = reduce(u128(n_)*rhs.n_); return *this; }
  27. Mod64 operator * (Mod64 rhs) const { return Mod64(*this) *= rhs; }
  28. u64 get() const { return reduce(n_); }
  29. static u64 mod, inv, r2;
  30. u64 n_;
  31. };
  32.  
  33. u64 Mod64::mod, Mod64::inv, Mod64::r2;
  34.  
  35. int t, k;
  36. u64 A0, A1, M0, M1, C, M;
  37.  
  38. void Run()
  39. {
  40. scanf("%d", &t);
  41. while (t--)
  42. {
  43. scanf("%llu%llu%llu%llu%llu%llu%d", &A0, &A1, &M0, &M1, &C, &M, &k);
  44. Mod64::set_mod(M);
  45. Mod64 a0(A0), a1(A1), m0(M0), m1(M1), c(C), ans(), a2();
  46. ans *= a0; ans *= a1;
  47. for (int i = ; i <= k; ++i)
  48. {
  49. a2 = a1;
  50. a1 = m0 * a1 + m1 * a0 + c;
  51. a0 = a2;
  52. ans *= a1;
  53. }
  54. printf("%llu\n", ans.get());
  55. }
  56. }
  57.  
  58. int main()
  59. {
  60. #ifdef LOCAL
  61. freopen("Test.in", "r", stdin);
  62. #endif
  63.  
  64. Run();
  65. return ;
  66. }

C    萌新拆塔

留坑。

D    奇迹暖婊

留坑。

E    风花雪月

留坑。

F    双倍掉率

留坑。

G    贵族用户

枚举VIP等级,注意精度问题 不要用(1-p * 0.01) 用 (100 - p) * 1.0 / 100

  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int maxn = 1e2 + ;
  6.  
  7. int m, k;
  8. int a[maxn], p[maxn], c[maxn], d[maxn];
  9.  
  10. int main()
  11. {
  12. int t;
  13. scanf("%d", &t);
  14. while(t--)
  15. {
  16. scanf("%d %d", &m, &k);
  17. for(int i = ; i <= m; ++i) scanf("%d %d", a + i, p + i);
  18. for(int i = ; i <= k; ++i) scanf("%d %d", c + i, d + i);
  19. int ans = 0x3f3f3f3f;
  20. //for(int i = 1; i <= k; ++i) ans += c[i] * d[i];
  21. for(int i = ; i <= m; ++i)
  22. {
  23. int res = ;
  24. for(int j = ; j <= k; ++j)
  25. {
  26. int tmp = (int)ceil(d[j] * (100.0 - p[i]) / 100.0);
  27. res += tmp * c[j];
  28. }
  29. if(res < a[i]) res = a[i];
  30. ans = min(ans, res);
  31. }
  32. ans = (int)ceil(ans * 0.1);
  33. printf("%d\n", ans);
  34. }
  35. return ;
  36. }

H    我不爱她

留坑。

I    人渣本愿

留坑。

J    友谊巨轮

用线段树维护每个人对其他人的聊天记录,然后取max上去,但是开1e5棵线段树肯定空间爆炸,考虑动态开点,每次最多开logn个结点

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define N 100010
  5. #define ll long long
  6.  
  7. int t, n, m, k;
  8. int root[N], res;
  9.  
  10. struct SEG
  11. {
  12. #define M N * 35
  13. int cnt, lson[M], rson[M];
  14. struct node
  15. {
  16. int tm, pos;
  17. ll Max;
  18. bool operator < (const node &r) const
  19. {
  20. return Max == r.Max ? tm < r.tm : Max < r.Max;
  21. }
  22. }a[M];
  23.  
  24. void pushup(int id)
  25. {
  26. a[id] = max(a[lson[id]], a[rson[id]]);
  27. }
  28.  
  29. void update(int &root, int l, int r, ll val, int tm, int pos)
  30. {
  31. if (!root)
  32. {
  33. root = ++cnt;
  34. lson[root] = rson[root] = ;
  35. a[root].Max = a[root].tm = a[root].pos = ;
  36. }
  37. if (l == r)
  38. {
  39. a[root].Max += val;
  40. a[root].tm = max(a[root].tm, tm);
  41. a[root].pos = pos;
  42. return;
  43. }
  44. int mid = (l + r) >> ;
  45. if (pos <= mid) update(lson[root], l, mid, val, tm, pos);
  46. else update(rson[root], mid + , r, val, tm, pos);
  47. pushup(root);
  48. }
  49. }segtree;
  50.  
  51. void Init()
  52. {
  53. segtree.cnt = ;
  54. memset(root, , sizeof root);
  55. res = ;
  56. }
  57.  
  58. struct OP
  59. {
  60. int a, b, c, tm;
  61. void scan(int tm)
  62. {
  63. this->tm = tm;
  64. scanf("%d%d%d", &a, &b, &c);
  65. }
  66. }op[N];
  67.  
  68. void update(int a, int b, int c, int tm)
  69. {
  70. int bef = segtree.a[root[a]].pos;
  71. segtree.update(root[a], , n, c, tm, b);
  72. int now = segtree.a[root[a]].pos;
  73. if (bef == now) return;
  74. if (bef)
  75. {
  76. if (segtree.a[root[bef]].pos == a) ++res;
  77. else --res;
  78. }
  79. if (now)
  80. {
  81. if (segtree.a[root[now]].pos == a) --res;
  82. else ++res;
  83. }
  84.  
  85. }
  86.  
  87. void Run()
  88. {
  89. segtree.a[].tm = ; // 防止取max操作时误把空节点pushup上去
  90. scanf("%d", &t);
  91. while (t--)
  92. {
  93. Init();
  94. scanf("%d%d%d", &n, &k, &m);
  95. for (int i = ; i <= k; ++i)
  96. {
  97. op[i].scan(i);
  98. update(op[i].a, op[i].b, op[i].c, i);
  99. update(op[i].b, op[i].a, op[i].c, i);
  100. if (i > m)
  101. {
  102. update(op[i - m].a, op[i - m].b, -op[i - m].c, i - m);
  103. update(op[i - m].b, op[i - m].a, -op[i - m].c, i - m);
  104. }
  105. printf("%d\n", res);
  106. }
  107. }
  108. }
  109.  
  110. int main()
  111. {
  112. #ifdef LOCAL
  113. freopen("Test.in", "r", stdin);
  114. #endif
  115.  
  116. Run();
  117. return ;
  118. }

K    最后战役

留坑。

L    数论之神

两个规律,在代码中。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5.  
  6. int T;
  7. ll n, k;
  8.  
  9. int main()
  10. {
  11. scanf("%d", &T);
  12. while (T--)
  13. {
  14. scanf("%lld%lld", &n, &k);
  15. ll t = (ll)sqrt(n);
  16. // cout << t << endl;
  17. ll num = t * (t + ) <= n ? * t : * t - ;
  18. k = num - k + ;
  19. ll K = k <= t ? k : n / (num - k + );
  20. printf("%lld %lld\n", num, K);
  21. }
  22. return ;
  23. }

牛客国庆集训派对Day5 Solution的更多相关文章

  1. 2019牛客国庆集训派对day5

    2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < ...

  2. 牛客国庆集训派对Day2 Solution

    A    矩阵乘法 思路: 1° 牛客机器太快了,暴力能过. #include <bits/stdc++.h> using namespace std; #define N 5000 in ...

  3. 牛客国庆集训派对Day4 Solution

    A    深度学习 puts(n) #include <bits/stdc++.h> using namespace std; int main() { double n; while ( ...

  4. 牛客国庆集训派对Day5 数论之神

    题目描述 终于活成了自己讨厌的样子. 这是她们都还没长大的时候发生的故事.那个时候,栗子米也不需要为了所谓的爱情苦恼. 她们可以在夏日的午后,花大把的时间去研究生活中一些琐碎而有趣的事情,比如数论. ...

  5. 牛客国庆集训派对Day1 Solution

    A    Tobaku Mokushiroku Kaiji 水. #include <bits/stdc++.h> using namespace std; ], b[]; void Ru ...

  6. 牛客国庆集训派对Day3 Solution

    A    Knight 留坑. B    Tree 思路:两次树形DP,但是要考虑0没有逆元 可以用前缀后缀做 #include <bits/stdc++.h> using namespa ...

  7. 牛客国庆集训派对Day6 Solution

    A    Birthday 思路:设置一个源点,一个汇点,每次对$源点对a_i, b_i , a_i 对 b_i 连一条流为1,费用为0的边$ 每个点都再连一条 1, 3, 5, 7, ....的边到 ...

  8. 牛客国庆集训派对Day7 Solution

    A    Relic Discovery 水. #include <bits/stdc++.h> using namespace std; int t, n; int main() { s ...

  9. 牛客国庆集训派对Day5 A.璀璨光滑

    首先我们可以确认 1的值一定是0 题目要求的是 有边的两个点所代表的值二进制有一位不同(即有边相连的两个值二进制所包含的1的个数相差为1) 所以我们通过他给你的图进行BFS 把原图分为一圈一圈的 并且 ...

随机推荐

  1. WAS创建虚拟主机和传输链

    一.配置虚拟主机 1.登录控制台

  2. iOS 录音功能的实现

    这两天也调了一下ios的录音,原文链接:http://www.iphoneam.com/blog/index.php?title=using-the-iphone-to-record-audio-a- ...

  3. Kconfig和Makefile的修改

    Kconfig文件的作用 内核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile.分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconf ...

  4. WPS Word查询某些内容的出现次数

    1.CTRL+F 打开查找窗体

  5. 日记整理---->2016-11-23

    这里放一些jquery的学习知识.可能从一开始就是我一个人单枪匹马,来年不求并肩作战,只愿所向披靡. jquery的学习一 jquery关于ajax的一些学习博客 ajax方法的介绍:https:// ...

  6. MQTT协议笔记之头部信息

    前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIB ...

  7. JS-运动基础——案例应用:淡入淡出效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Excel 中如何快速统计一列中相同字符的个数(函数法)

    https://jingyan.baidu.com/article/6d704a132ea17328da51ca78.html 通过excel快速统计一列中相同字符的个数,如果很少,你可以一个一个数. ...

  9. js+jquery

    改变元素的不透明度 <!DOCTYPE html> <html> <head> <script> function ChangeOpacity(x) { ...

  10. mysql 效率 inner join 与 where in

    -- report 123.77k行 report_loss 620 行 -- inner join ;report_loss 索引 all report 索引 eq_ref ; -- total 0 ...