
ACM训练
文章平均质量分 82
ysyyhhh
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #729 (Div. 2) C. Strange Function
题意定义 f(i) 为 x ,x 为 非i的因子的最小正整数。给一个n。求 f(1) + f(2) + … + f(n) % 1e9+7思路f(i) = x,等价于 i 整除 lcm(1, … , x-1), i 不 整除 lcm(1, … , x)。可以用贡献度思想 / 集合的思想。首先我们这么定义:设 a = lcm(1, … , i),则 b = lcm(1,…, i+1)则 c = lcm(1,…, i+2) = lcm(b , i+2) .在1…n 里 整除a 的数的个数为原创 2021-07-04 23:15:39 · 254 阅读 · 2 评论 -
BUU round2 题解
round 2 题解这次更多考验算法和编码能力。题目难度由易到难A < F < BD E CA 三角形的类型 几何题 难度 1.5有多种方法可以做这道题。需要注意一些点。三点成一条直线的情况两个点重合时,三个点重合的情况。注意精度问题。如果采用求直线斜率,要注意不能除0。#include<iostream>#include<cstdio>#include<cmath>using namespace std;const原创 2021-06-27 16:31:09 · 222 阅读 · 0 评论 -
自我总结的ACM从入门到拿牌的几大影响因素
在整理社团需要的准备材料时随手写的,想理理训练的思路。没想到越写越多,又可以水一篇文章了。目录自身能力基础知识的储备/ 技能树的建立思维能力锻炼思维能力的方法和经验编码能力锻炼编码能力的方法和经验手速总结:比赛的经验心态组队兴趣一些奇思妙想自身能力基础知识的储备/ 技能树的建立基础知识其实就是考察的范围,比如银牌所涉及的范围是铜牌的基础上加很多算法的。想拿对应的牌子,就必须把对应的范围都尽可能地涉猎。如果忽略了一部分知识没有去学习,则一旦比赛出现了这方面的题,就无论如何都解决不了。获取知识的.原创 2021-05-23 15:59:38 · 476 阅读 · 3 评论 -
ICPC 近年铜牌题
2019 ICPC 区域赛 铜牌题2019 南昌CEL2019 徐州ACF2019 南京ACK2019 银川站据说是最水的区域赛,所以甚至没找到榜单。那就重写一场吧。2019 上海BEHK20182018 焦作ADEI20172017 南宁AFIJL2017 西安BFH...原创 2020-12-03 18:49:28 · 2043 阅读 · 0 评论 -
2019ICPC南昌区域赛 Bob‘s Problem 题解
题目https://nanti.jisuanke.com/t/42580思路:首先,黑边是一定要全部选中的。但是为了后面使用生成树,在加入黑边的时候,只对不存在并查集内的边计算入生成的树的边数加入白边时,考虑的因素有:k于n-1的关系。k条白边加入后,生成树的边数 等于 n-1 ,则 恰好满足题目要求,答案为这k条白边 + 所有黑白的权值。生成树的边数 小于 n-1,则满足不了题目要求,答案为-1生成树的边数 大于 n-1,则除了树的边以外,继续从大到小添加白边,直到k条白边(多多益善)原创 2020-12-03 16:57:30 · 343 阅读 · 0 评论 -
HDU5938 题解
思路:计算形式总是a+b-c*d/e,我们希望a、b、e大一些,c和d小一些给c和d各一位,给e一位或两位,a和b中的一个拿一位,另一个拿光。即:e一位或e两位a拿一位或b拿一位于是有2*2=4种可能情况,暴力枚举即可。注意:字符串 被截取时,一定要看被截取的极端情况下,剩下的字符数目是否符合题意。初始化最大值时,如果不可能为负,初始化为-1,如果可能为负,则初始化为负无穷#include<iostream>#include<cstring>using原创 2020-12-02 21:42:52 · 331 阅读 · 0 评论 -
POJ1029 题解
思路:最开始想模拟分类,逐个赋值重量,最后重量不同的硬币是错误的硬币。后面看题解发现,直接比较次数是正解。即:假币在<或>式子中出现的次数等于 不等式出现的次数。因为只要有假币,那么就肯定不等相等时,一定无假币如果发现多个假币,说明假币可能为0.(第一次提交错在这)#include<iostream>using namespace std;const int maxn = 1009;int n,k;int un_l[maxn];int un_r[maxn]原创 2020-12-01 16:40:58 · 644 阅读 · 0 评论 -
POJ 1073 题解
思路:模拟,把实现功能分块写。一是比较结果、二是得到删除\n\t等字符后的字符串比较两个结果通过直接比较删除\n \t等字符后比较#include<iostream>using namespace std;int n;void delete_all(string &a){ //删除所有的格式 string b = ""; for(int i = 0;i < a.length();i++){ if(a[i]!=' '&&a[i]!=原创 2020-11-30 22:33:58 · 284 阅读 · 0 评论