A. Coins

Water.

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n, s;
  4.  
  5. int main()
  6. {
  7. while (scanf("%d%d", &n, &s) != EOF)
  8. {
  9. int res = ;
  10. for (int i = n; i >= ; --i) while (s >= i)
  11. {
  12. ++res;
  13. s -= i;
  14. }
  15. printf("%d\n", res);
  16. }
  17. return ;
  18. }

B. Views Matter

Solved.

题意:

有n个栈,不受重力影响,在保持俯视图以及侧视图不变的情况下,最多可以移掉多少个方块

思路:

考虑原来那一列有的话那么这一列至少有一个,然后贪心往高了放

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. #define N 100010
  6. int n, m;
  7. ll a[N], sum;
  8.  
  9. int main()
  10. {
  11. while (scanf("%d%d", &n, &m) != EOF)
  12. {
  13. sum = ;
  14. for (int i = ; i <= n; ++i) scanf("%lld", a + i), sum += a[i];
  15. sort(a + , a + + n);
  16. ll res = , high = ;
  17. for (int i = ; i <= n; ++i) if (a[i] > high)
  18. ++high;
  19. printf("%lld\n", sum - n - a[n] + high);
  20. }
  21. return ;
  22. }

C. Multiplicity

Upsolved.

题意:

定义一个序列为好的序列即$b_1, b_2, ...., b_k 中i \in [1, k] 使得 b_i % i == 0$

求有多少个好的子序列

思路:

考虑$Dp$

$令dp[i][j] 表示第i个数,长度为j的序列有多少种方式$

$dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]   (arr[j] % j == 0)$

否则 $dp[i][j] = dp[i - 1][j]$

然后不能暴力递推,只需要更新$arr[j] % j == 0 的j即可$

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. #define N 1000100
  6. const ll MOD = (ll)1e9 + ;
  7. int n; ll a[N], dp[N];
  8.  
  9. int main()
  10. {
  11. while (scanf("%d", &n) != EOF)
  12. {
  13. for (int i = ; i <= n; ++i) scanf("%lld", a + i);
  14. memset(dp, , sizeof dp);
  15. dp[] = ;
  16. for (int i = ; i <= n; ++i)
  17. {
  18. vector <int> cur;
  19. for (int j = ; j * j <= a[i]; ++j)
  20. {
  21. if (a[i] % j == )
  22. {
  23. cur.push_back(j);
  24. if (j != a[i] / j)
  25. cur.push_back(a[i] / j);
  26. }
  27. }
  28. sort(cur.begin(), cur.end());
  29. reverse(cur.begin(), cur.end());
  30. for (auto it : cur)
  31. dp[it] = (dp[it] + dp[it - ]) % MOD;
  32. }
  33. ll res = ;
  34. for (int i = ; i <= ; ++i) res = (res + dp[i]) % MOD;
  35. printf("%lld\n", res);
  36. }
  37. return ;
  38. }

D. TV Shows

Upsolved.

题意:

有n个电视节目,每个节目播放的时间是$[l, r],租用一台电视机的费用为x + y \cdot time$

一台电视机同时只能看一个电视节目,求看完所有电视节目最少花费

思路:

贪心。

因为租用电视机的初始费用是相同的,那么我们将电视节目将左端点排序后

每次选择已经租用的电视机中上次放映时间离自己最近的,还要比较租用新电视机的费用,

如果是刚开始或者没有一台电视机闲着,则需要租用新的电视机

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. #define N 100010
  6. struct node
  7. {
  8. ll l, r;
  9. void scan() { scanf("%lld%lld", &l, &r); }
  10. bool operator < (const node &r) const
  11. {
  12. return l < r.l || (l == r.l && this->r < r.r);
  13. }
  14. }arr[N];
  15. int n; ll x, y;
  16. const ll MOD = (ll)1e9 + ;
  17. multiset <ll> se;
  18.  
  19. int main()
  20. {
  21. while (scanf("%d%lld%lld", &n, &x, &y) != EOF)
  22. {
  23. for (int i = ; i <= n; ++i) arr[i].scan();
  24. sort(arr + , arr + + n);
  25. ll res = ;
  26. for (int i = ; i <= n; ++i)
  27. {
  28. if (se.lower_bound(arr[i].l) == se.begin())
  29. res = (res + x + y * (arr[i].r - arr[i].l) % MOD) % MOD;
  30. else
  31. {
  32. int pos = *(--se.lower_bound(arr[i].l));
  33. if (x < y * (arr[i].l - pos))
  34. res = (res + x + y * (arr[i].r - arr[i].l) % MOD) % MOD;
  35. else
  36. {
  37. se.erase(--se.lower_bound(arr[i].l));
  38. res = (res + y * (arr[i].r - pos) % MOD) % MOD;
  39. }
  40. }
  41. se.insert(arr[i].r);
  42. }
  43. printf("%lld\n", res);
  44. }
  45. return ;
  46. }

E. Politics

Unsolved.

F. Lost Root

Unsolved.

Codeforces Round #523 (Div. 2) Solution的更多相关文章

  1. Codeforces Round #523 (Div. 2)

    Codeforces Round #523 (Div. 2) 题目一览表 来源 考察知识点 完成时间 A Coins cf 贪心(签到题) 2018.11.23 B Views Matter cf 思 ...

  2. Codeforces Round #466 (Div. 2) Solution

    从这里开始 题目列表 小结 Problem A Points on the line Problem B Our Tanya is Crying Out Loud Problem C Phone Nu ...

  3. 老年OIer的Python实践记—— Codeforces Round #555 (Div. 3) solution

    对没错下面的代码全部是python 3(除了E的那个multiset) 题目链接:https://codeforces.com/contest/1157 A. Reachable Numbers 按位 ...

  4. Codeforces Round #545 (Div. 1) Solution

    人生第一场Div. 1 结果因为想D想太久不晓得Floyd判环法.C不会拆点.E想了个奇奇怪怪的set+堆+一堆乱七八糟的标记的贼难写的做法滚粗了qwq靠手速上分qwqqq A. Skyscraper ...

  5. Codeforces Round 500 (Div 2) Solution

    从这里开始 题目地址 瞎扯 Problem A Piles With Stones Problem B And Problem C Photo of The Sky Problem D Chemica ...

  6. Codeforces Round #523 (Div. 2) E. Politics(最小费+思维建图)

    https://codeforces.com/contest/1061/problem/E 题意 有n个点(<=500),标记第i个点的代价a[i],然后分别在这n个点建两棵树,对于每颗树的每个 ...

  7. Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)

    https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...

  8. Codeforces Round #607 (Div. 1) Solution

    从这里开始 比赛目录 我又不太会 div 1 A? 我菜爆了... Problem A Cut and Paste 暴力模拟一下. Code #include <bits/stdc++.h> ...

  9. Codeforces Round #578 (Div. 2) Solution

    Problem A Hotelier 直接模拟即可~~ 复杂度是$O(10 \times n)$ # include<bits/stdc++.h> using namespace std; ...

随机推荐

  1. laravel 查询构建器(连贯操作)

    注:laravel 查询返回行的都是 php 的 stdClass 对象实例,不是数组!!!! 1)查询多行(get) DB::table('table_name')->get(); 带偏移和限 ...

  2. hadoop基本认识

    还是hadoop专有名词进行说明. Hadoop框架中最核心设计就是:HDFS和MapReduce.还有yarn HDFS提供了海量数据的存储.(分布式文件系统) MapReduce提供了对数据的计算 ...

  3. 使用fetch-jsonp进行跨域以及参数的传递

    其实fetch-jsonp的官方文档里面已经写得很详细了,连接如下:https://github.com/camsong/fetch-jsonp:但是由于它本身没有多少demo,所以自己在上手的时候遇 ...

  4. PHP的函数-----生成随机数、日期时间函数

    常用的函数 [1]   生成随机数 rand(); 例子: echo rand(); 显示结果: 当刷新时,会有不同的数,默认生成随机数.生成随机数不能控制范围. 如果,想要控制在范围之内,就用: e ...

  5. sencha touch 入门系列 (六)sencha touch运行及代码解析(下)

    接着上一讲,通过index.html里development.js对app.json里js资源文件的解析,app.js便被index.html引入了, app.js是整个项目的程序入口,在项目完成时使 ...

  6. Resin任意文件读取漏洞

    Resin是什么 虽然看不上但是还是原因下百度百科: Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快.Resin本身包含了一个支持HTTP/1.1的 ...

  7. 《IT项目经理成长手记》

    下载地址: https://download.csdn.net/download/h623691640/9109265 读后感: 曾担任过试用期3个月项目经理,遇到的问题确实如书中所说,几乎有一些是一 ...

  8. svn-maven-tomcat自动发布脚本

    #!/bin/sh #svn-maven-tomcat自动发布脚本 #变量设置 svnpath=svn://10.60.10.120/研发部/xx-maven svnusername=xxx svnp ...

  9. 微信小程序 --- action-sheet底部弹框

    action-sheet:从屏幕底部弹出一个菜单,选择: 使用的时候,在给不同的 action-sheet-item 添加不同的事件. 效果: (这里的确定可以有多个) 代码: <button ...

  10. 微信小程序 --- for循环渲染

    循环标签:wx:for <view wx:for="{{['aa','bb','cc']}}"> {{index}} {{item}} </view> 这里 ...