构造 1002 GTW likes gt

题意:中文题面

分析:照着题解做的,我们可以倒着做,记一下最大值,如果遇到了修改操作,就把最大值减1,然后判断一下这个人会不会被消灭掉,然后再更新一下最大值。不知道其他的做法是怎么样的

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. using namespace std;
  5.  
  6. #define lson l, mid, o << 1
  7. #define rson mid + 1, r, o << 1 | 1
  8. const int N = 5e4 + 5;
  9. const int INF = 0x3f3f3f3f;
  10. int n, m;
  11. int a[N], b[N], cnt[N], mx[2];
  12.  
  13. int main(void) {
  14. int T; scanf ("%d", &T);
  15. while (T--) {
  16. scanf ("%d%d", &n, &m);
  17. for (int i=1; i<=n; ++i) {
  18. scanf ("%d%d", &a[i], &b[i]);
  19. }
  20. memset (cnt, 0, sizeof (cnt));
  21. for (int c, i=1; i<=m; ++i) {
  22. scanf ("%d", &c); cnt[c]++;
  23. }
  24. mx[0] = mx[1] = 0; int ans = n;
  25. for (int i=n; i>=1; --i) {
  26. mx[0] -= cnt[i]; mx[1] -= cnt[i];
  27. if (mx[a[i]^1] > b[i]) ans--;
  28. mx[a[i]] = max (mx[a[i]], b[i]);
  29. }
  30. printf ("%d\n", ans);
  31. }
  32.  
  33. return 0;
  34. }

打表+数学 1003 GTW likes function

题意:中文题面

分析:打表才能看出来是 n + x + 1,然后可以直接套模版计算了。严格证明看官方题解。

  1. #include <cstdio>
  2. #include <cmath>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. typedef long long ll;
  7.  
  8. ll euler(ll x) {
  9. ll ret = x, t = x;
  10. for (int i=2; i*i<=x; ++i) {
  11. if (t % i == 0) {
  12. ret = ret / i * (i - 1);
  13. while (t % i == 0) t /= i;
  14. }
  15. }
  16. if (t > 1) ret = ret / t * (t - 1);
  17. return ret;
  18. }
  19.  
  20. ll euler2(ll x) {
  21. ll ret = 1, i = 2;
  22. for (; i*i<=x; ++i) {
  23. if (x % i == 0) {
  24. x /= i;
  25. ret *= (i - 1);
  26. while (x % i == 0) {
  27. x /= i; ret *= i;
  28. }
  29. }
  30. }
  31. if (x > 1) ret *= (x - 1);
  32. return ret;
  33. }
  34.  
  35. ll _pow(ll x, int n) {
  36. ll ret = 1;
  37. for (int i=1; i<=n; ++i) {
  38. ret *= x;
  39. }
  40. return ret;
  41. }
  42.  
  43. ll comb(int n, int m) {
  44. ll ret = 1;
  45. for (int i=1; i<=m; ++i) {
  46. ret = ret * n; n--;
  47. }
  48. ll ret2 = 1, t = m;
  49. for (int i=1; i<=m; ++i) {
  50. ret2 = ret2 * t; t--;
  51. }
  52. return ret / ret2;
  53. }
  54.  
  55. ll fun(int x) {
  56. ll ret = 0;
  57. for (int i=0; i<=x; ++i) {
  58. ret += _pow (-1, i) * _pow (2, 2 * x - 2 * i) * comb (2 * x - i + 1, i);
  59. }
  60. return ret;
  61. }
  62.  
  63. int main(void) {
  64. /*ll f = fun (10);
  65. printf ("i: %d f: %d\n", 0, f);
  66. for (int i=1; i<=10; ++i) {
  67. f = fun (f);
  68. printf ("i: %d f: %d\n", i, f);
  69. }*/
  70. ll n, x;
  71. while (scanf ("%I64d%I64d", &n, &x) == 2) {
  72. printf ("%I64d\n", euler2 (n + x + 1));
  73. }
  74.  
  75. return 0;
  76. }

  

BestCoder Round #66 (div.2)的更多相关文章

  1. BestCoder Round #66 (div.2)B GTW likes gt

    思路:一个O(n)O(n)的做法.我们发现b_1,b_2,...,b_xb​1​​,b​2​​,...,b​x​​都加11就相当于b_{x+1},b_{x+2},...,b_nb​x+1​​,b​x+ ...

  2. HDU5597/BestCoder Round #66 (div.2) GTW likes function 打表欧拉函数

    GTW likes function      Memory Limit: 131072/131072 K (Java/Others) 问题描述 现在给出下列两个定义: f(x)=f_{0}(x)=\ ...

  3. HDU5596/BestCoder Round #66 (div.2) 二分BIT/贪心

    GTW likes gt    Memory Limit: 131072/131072 K (Java/Others) 问题描述 从前,有nn只萌萌的GT,他们分成了两组在一起玩游戏.他们会排列成一排 ...

  4. HDU 5596/BestCoder Round #66 (div.2) GTW likes math 签到

    GTW likes math  Memory Limit: 131072/131072 K (Java/Others) 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主 ...

  5. BestCoder Round #66 (div.2) hdu5592

    GTW likes math Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  6. BestCoder Round #66 (div.2) 1002

    GTW likes gt  Accepts: 132  Submissions: 772  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

  7. hdu 5636 搜索 BestCoder Round #74 (div.2)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  8. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

  9. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

随机推荐

  1. Quatre 2D的绘图功能的三个步骤(上下文,绘图,渲染)

    一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法. 画线的三个步骤: ( ...

  2. [Android Pro] Android 6.0 Root

    reference : http://bbs.gfan.com/android-8001827-1-1.html 2. 刷机和刷入recovery 建议参考 置顶教程: [15年3月31日更新]Nex ...

  3. ppt动画制作bullets

    动画->效果选项->作为一个对象 这样之后,字总是在一段时间后就自己出来,而不是我们点一下再出来,解决方法是对同一段字重复设置,后面那个会默认是点一下,出一张,在把之前的动画删除即可.

  4. iOS开发Xcode7真机调试教程

    从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 调试步骤 1.假设已经你已经有了苹果账号,下载并安装好了Xcode7 2. 打开Xcode-> Prefer ...

  5. CocoaPods 安装

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...

  6. zip 压缩文件 unzip查看zip压缩包内的内容

    [root@GitLab tmp]# zip -r new.zip ./*  adding: gitlab_key_file20161001-2668-1eu44mv (deflated 15%)  ...

  7. ssh -v root@xxxxx 显示登录的细节

    [root@ok .ssh]# ssh -v root@10.100.2.84 OpenSSH_5.3p1, OpenSSL Feb debug1: Reading configuration dat ...

  8. GBDT原理实例演示 2

        一开始我们设定F(x)也就是每个样本的预测值是0(也可以做一定的随机化) Scores = { 0, 0, 0, 0, 0, 0, 0, 0}     那么我们先计算当前情况下的梯度值     ...

  9. C# 使用Conditional特性而不是#if条件编译

    概述 #if/#endif 语句常用来基于同一份源码生成不同的编译结果,其中最常见的就是debug版和release版.但是这些工具在实际应用中并不是非常友好,因为它们容易被滥用,其代码页进而难以理解 ...

  10. LINQ To DataSet 示例

    如果在项目遇到这样的问题如:DataTable1和DataTable2需要根据一定的规则进行合并成一个DataTable3. 问题1:DataTable1不是读数据库表的结果,而是合成的数据集,因此无 ...