A GCD vs LCM(数论 + 思维)

Description:

​ 求4个和为n的数 要求 gcd(a, b) == lcm(c, d)

Solution:

​ 令lcm(c, d) = 1 则 c = 1 d = 1

​ 因为x取任意正整数 gcd(1, x) = 1始终成立

​ 令gcd(a, b) = 1 则 a = 1 b = n - 3

Code:

void solve()
{int n; cin >> n;cout << 1 << ' ' << n - 3 << ' ' << 1 << ' ' << 1 << endl;
}

B Array Cloning Technique(模拟)

Description:

​ 现有长度为n的数组 你可以通过若干次操作 使某个数组中的所有数相同

​ 操作一 选择一个数组,将其复制一份,即新增一个一模一样的数组。

​ 操作二 选择数组a 和 数组b 交换a_i和b_i

​ 求最少的操作次数

Solution:

​ 贪心:现有数组中出现最多的数为x 我们应将数组全部置为x

​ 每次复制会获得比上一次复制*2的交换机会

​ 模拟 复制和交换并累加次数

Code:

void solve()
{int n; cin >> n;map<int, int> mp;int x;for(int i = 1; i <= n; i++)cin >> x, mp[x] ++;int mx = 0;for(auto x : mp)mx = max(mx, mp.second);if(n == 1) {cout << 0 << '\n'; return;}if(mx == n) {cout << 0 << '\n'; return;}int t = n - mx, st = mx, tot = 0, res = 0;while(tot < t){res ++; //复制tot += st, cnt += st;st *= 2;}if(tot > t)    res -= (tot - t); //加多了cout << res << '\n';
}

C Tree Infection(贪心 + 模拟)

Description:

​ 给定一棵树 每秒做两个操作

​ 先在对于所有感染节点 传染一下病毒 然后你可以感染任一未被感染的节点

​ **传染:**如果一个节点的子节点中有儿子被感染了 那么他就会传染他的一个兄弟

​ 请输出最短感染整棵树的时间

Solution:

​ 因为传染只能在兄弟之间进行 所以呢 我们要统计出一共有多少组兄弟 每组必须感染一遍

​ 我们就用桶排来存一下 sum[i] 代表父节点i的儿子群数量(兄弟群)

​ 然后排序一下 就可以得到有m组 答案最少为m

​ 贪心:因为每秒会传染一次 所以先感染健康人数最多的组 就可以让他们尽可能多地被感染

​ 在感染完一波的时候 我们看一下还剩多少人 再重排一遍

​ 在传染的基础上 为健康人数最多的组感染一个 当感染整棵树的时候 结束

Code:

void solve()
{int n;cin >> n;ms(sum, 0);sum[n + 1] = 1; //感染根节点for(int i = 2; i <= n; i++){int x; cin >> x;sum[x] ++;}sort(sum + 1, sum + n + 2, greater<int>());int m; //一共有多少个树群for(m = 1; ; m++){if(sum[m] == 0){m --;break;}}for(int i = 1; i <= m; i++)sum[i] = sum[i] - m + i - 1; //先感染大的 贪心 计算传染的人数sort(sum + 1, sum + m + 1, greater<int>()); //把剩下的重排 大到小int mx = sum[1] > 0 ? 1 : 0; //如果连最大的都已经是0 那就结束辣int res = m; //最小的可能答案是mwhile(1){if(sum[mx] == 0)    break; //已经找不到健康人数最多的点了sum[mx] --; //手动感染res ++;mx = 0; //sum[mx] = 0;for(int j = 1; j <= m; j++){if(sum[j] <= 0) break;sum[j] --; //传染if(sum[mx] < sum[j])    mx = j; //找到当前健康人数最多的点}}cout << res << endl;
}

CF Div2 781相关推荐

  1. 【解题报告】CF DIV2 #ROUND 723 A~D

    [解题报告]CF DIV2 #ROUND 723 A~D 比赛链接 比赛评价: 发现这场十点就开了,然后就和ph巨佬一起玩了一场.我两分别再A和B罚时罚飞了,索性后面把C1,C2整出来了 排名2500 ...

  2. CF div2 PA 2019.02.17

    一道签到题 思路:在起点处买完步长,之后每走距离买一次 实现:1 * v + 2 + 3 + 4 + ->= n - 1即可(对n >= v需特殊判定) #include<cstdi ...

  3. cf div2 #444 (ABC)(D已补)

    ABC三道大水题,自信满满锁了溜出自习室回寝睡觉,第二天起来发现变成两道题了,哭唧唧. 回头翻代码吃了一口大翔,少写了两行被自己gank了. 然后由于出题人的数据放错了导致D题一开始没人过,E和F零星 ...

  4. #CF div2 1670D Very Suspicious题解(思维+贪心)

    原题链接. 1.题意: 给个无穷大的正六边形棋盘,可以画若干条过六边形对立顶点的直线,问这些直线最多可以构成多少个三角形. 2.思路: 刚看题其实自己是挺蒙的,主要由于自己总局限于六边形之中,没有跳出 ...

  5. 2022/10/24(cf·div2#829)https://codeforces.com/contest/1754

    https://codeforces.com/contest/1754/problem/A //用一个变量x记录遇到问题时需要解决的数量 //当需要解决问题的数量小于等于0时,全部解决 //遇到新问题 ...

  6. 【解题报告】CF DIV3 #ROUND 734 A~D1

    [解题报告]CF DIV2 #ROUND 707 A~D 比赛链接 比赛评价: 一般性,有段时间没打了,甚至忘记多组输入hh.顺便吐槽一下翻译软件确实不行,以后还是直接看英文好了 A. Polycar ...

  7. AtcoderCodeForces杂题11.6

    Preface NOIP前突然不知道做什么,感觉思维有点江僵化,就在vjudge上随便组了6道ABC D+CF Div2 C/D做,发现比赛质量还不错,知识点涉及广,难度有梯度,码量稍小,思维较多. ...

  8. 【CodeForces - 689B】Mike and Shortcuts(Dijkstra最短路,或者bfs跑状态类似spfa)

    题干: Recently, Mike was very busy with studying for exams and contests. Now he is going to chill a bi ...

  9. CF1604C Di-visible Confusion

    CF传送门 早上起来看一下昨天的cf div2,后悔昨天没打了 本题是一道很水的思维题 题目的大意就是说,如果选择序列aaa的第iii位,如果aia_iai​不整除(i+1)(i+1)(i+1),就把 ...

最新文章

  1. dvwa如何打开_一篇文章让你搭建自己的Web安全测试平台(Dvwa)
  2. WPF 绑定StaticResource到控件的方法
  3. android 查看多个图片,android提取视频多张图片和视频信息
  4. 双指放大_便携超小手机显微镜1000倍放大!让你玩转微观世界,惊艳朋友圈
  5. (57)Verilog HDL选择运算符:?
  6. 【JZOJ3347】树的难题
  7. python怎么求中位数_Python求两个有序数组的中位数的几种方法
  8. C#正则表达式小结 - z
  9. JavaScript 获取GET中的值
  10. 感受MapXTreme2004
  11. 手机APP项目中调用第三方短信验证码接口
  12. python 趋势跟踪算法_DualThrust区间突破策略Python版
  13. 新媒体运营工具大盘点,收藏方便不备之需!
  14. dnf虚拟机安装的解决方法
  15. 几个大学生7天涨粉百万,月入超过10万,5000字长文拆解
  16. 基于SSM实现手机销售商城系统
  17. matlab安装遇到的问题
  18. 调用QQ音乐接口,实现自制MV播放器
  19. yp北京理工 拓扑排序+最短路(更新中re)
  20. java源程序文件_.class文件为Java源程序文件

热门文章

  1. uniapp样式选择器最全详解
  2. Python - 删除print()中的空格
  3. SLAM--Geometric jacobian of UR series.
  4. 使用开源软件XWIKI搭建公司内部WIKI系统
  5. python编程字典数据库_python基础数据类型之字典、集合
  6. 解决一个应用连接oracle端口1521不通问题
  7. 计划的主体部分应有哪些内容_计划的正文主体一般有哪三个部分构成
  8. 【java学习】 面向对象编程+java购物车系统
  9. Matlab函数学习---sum函数(计算矩阵、数组和向量元素总和)
  10. win7锁定计算机快捷键6,win7锁定计算机快捷键_win10 锁定计算机