- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 2021 CCPC 哈尔滨题解
K 线段树上二分 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> #include<climits> using namespace std; void File(){ freopen("B.in","r",stdin); freopen("B.out","w",stdout); } #d
2021-11-28 09:15:00
1321
原创 2021沈阳 D. Journey to Un‘Goro 简简单单打个表
https://codeforces.com/gym/103202/problem/D 1.首先对于ans来说,最大值为全r 容易求得: ll res = 0; for(ll i = 1;i <= n;i += 2){ res += n - i + 1; } 打表发现: 每个答案的前n / 2 + 1都是rr不断向前移动,故n >= 200的情况解决 观察表尾部可以发现 偶数的情况下之后的尾部形式都为:{“bbbbbbbbbbbbbbr”,“bbbbbbbb
2021-11-19 12:13:30
1830
原创 E. Mocha and Stars 反演+dp
卷积: 两个多项式的卷积: 之后引入 狄利克雷卷积是两个数的因子的成绩为n,且两个因子都要是整数。 突破卷积的目标系数为两个下标的和为p 可以简单的记忆为 和 与 积 而狄利克雷卷积有如此复杂的格式,自然有良好的性质。 以下列举本题所需的: 莫比乌斯函数与1的卷积为单位函数 形式化: (其实以上狄利克雷卷积性质,即位莫比乌斯反演的最常见形式;) 单位函数是: 只有当自变量取1的时候,函数值为1 其余为0 即题目中的自变量为gcd(a_1,a_2,…,a_n) 根据以上内容可以把题目的目标写为:
2021-09-17 23:30:50
224
原创 Java接口
可以把接口理解为 函数(类变量)。是一个可以被赋予很多值的变量 比如一个Interface Shape,就可以给Shape x= 三角; Shape x = 正方形…… 此时x只能使用接口的函数,要想使用变量的函数,需要()转换类型。 ...
2021-08-30 22:52:50
109
原创 Java线程
线程使用方法: 1、extends一个Thread,Tread内本身是空run,所以要extends一个ThreadOne,然后在ThreadOne一个进程才能Start 2、直接实现一个Runnable接口,可以用匿名类,之后直接Thread thread = new Thread(匿名类),就构造出一个有run的线程 ...
2021-08-30 22:50:34
101
原创 Java上转型
子类转为父类,实际上是舍去一些属性,但是用了重写后的新成员 public class 中共1.0{ int 职务; public void 纲领(){ 1.0 } } public class 中共2.0 extends 中共1.0{ int 职务; int 新职务; public void 纲领(){ 2.0 } } main{ 中共2.0 党2.0 = new 中共2.0(); 中共1.0 党1.0 = new 中共1.0(); 党1.0 = 党2.0; //此时的党1.0
2021-03-26 11:10:12
106
原创 Java子类隐藏与重写
子类在extends父类时,可以重写同名的成员(变量和方法),重写变量叫隐层,重写方法叫覆盖。 例如:一年级的时候只学了整数加法,五年级学了小数加法 且一年级对世界的认知只有对与错,五年级变得复杂 但是构造方法需要注意!!!! public class 一年级{ boolean 认知; public int Add(int a,int b){ return a + b; } } public class 五年级 extends 一年级{ int 认知;//父类中的认知被隐藏 super.认知;
2021-03-26 10:46:50
187
原创 2021年度训练联盟热身训练赛第三场
https://ac.nowcoder.com/acm/contest/13168 A 水题 B 发现奇数中间的块会被分隔,大块由好多小块组成。 #include <bits/stdc++.h> using namespace std; int main() { long long a,b; cin>>a>>b; long long ans = __gcd(a,b); a /= ans; b /= ans; if(a &am
2021-03-25 16:09:45
109
原创 ACM找规律(附加打表和计算系数代码)
找规律的题目主要分为两大类 找规律的题目主要分为两大类没有参照的找规律2018南京ICPC G 题有参照的找规律 没有参照的找规律 2018南京ICPC G 题 写出暴力程序,发现相邻项之间做除法好像有某种规律,给所有的ans都乘上24发现是相邻的四项的乘积 #include <bits/stdc++.h> using namespace std; struct x{ double x,y; }d[100000]; int cnt = 0; double esp = 1e-4; doub
2021-03-08 15:08:54
340
原创 除式 的最优解ACM小技巧
题目链接 这样一道题 要计算s[r l]r−l+1\frac{s[r~l]}{r - l + 1}r−l+1s[r l]这个除式的最大值,其上最大或下最大时都不能求出最大值,所以将其移项并化简得到s−l∗ans>=0s - l * ans >= 0s−l∗ans>=0时当前ansansans成立,所以考虑二分ansansans并用单调队列来处理那个s与t 给所有的元素同时减去一个值消除分母的影响,后分析问题,变成了要求一个s′s's′的最值 用单调栈 ...
2021-03-08 15:08:46
110
原创 Codeforces Round #680(数学题,约数 绝对值)
https://codeforces.ml/contest/1445/problems A水题,但注意要全部读入完成再输出结果 B,阅读理解 C 寻找一个X可以被Q整除却不能被P整除的最大X 逆向思维,X其实是Q除去某个数,除去之后的数不能是P的倍数,所以应该是比P少一个质因子 需要注意的是,在筛除的过程中,只需要找到根号,因为比根号大的质因子只有一个,懒得筛质因子就筛所有因子。 #include <bits/stdc++.h> using namespace std; #define ll l
2021-03-05 22:21:32
188
原创 字符串问题
注意字符串往往具有可二分性(子串具有母串的性质) https://ac.nowcoder.com/acm/contest/9984/B #include <bits/stdc++.h> using namespace std; const int Mn = 2e5 + 5; #define ull unsigned long long #define ll long long char s[Mn],t[Mn]; ull hs[Mn],ht[Mn]; const ull base = 131; u
2021-03-05 22:21:06
163
1
原创 2018-2019 ACM-ICPC, Asia Nanjing Regional Contest
https://codeforces.ml/gym/101981 A 博弈 (相关专题待补) 博弈的精髓在于对称 此处的对称有两种, 一 ,后手让局面永远保持某种状态 如 min博弈中的(m+1)(m + 1)(m+1)状态 二 ,在多组数据博弈当中,两堆相同的元素,可以进行模仿,从而达到必胜(和SG中的异或有类似 I 网络流,两边二分匹配 或者多连接一个次源点,让源点和次源地的流量为k,次源点同样连接每一个n 有些细节需要注意now和head,每次只会Dfs查询Bfs已经跟新过的范围,head的初始值只与
2021-03-05 22:20:33
126
原创 DFS与匈牙利算法,JAVA注意事项
2021牛客寒假算法基础集训营5 A Dfs相邻的最小的最大值 https://ac.nowcoder.com/acm/contest/9985/A 注意:一个点被Dfs过,只代表他不被第二次DFS不代表他不更新值 #include <bits/stdc++.h> using namespace std; const int Mn = 2e5 + 5; vector <int> son[Mn]; #define ll long long int vis[Mn]; ll ans = 0
2021-03-03 22:40:24
184
2
原创 状压DP小技巧
一个数有多少位1 for(int i = 1;i <= 1024;i ++) w[i] = w[i ^ i & -i] + 1;
2021-03-03 18:19:39
104
1
原创 2021牛客寒假算法基础集训营6机器人(状态压缩Dp,公式推导)
链接:https://ac.nowcoder.com/acm/contest/9986/G 来源:牛客网 注意在数据范围小的时候,考虑状压DP,和注意可以从两个元素入手推导多个元素 有 n 个机器人,每个机器人会读入一个 x ,并返回 ax+b 。 现在银临姐姐手里有一个数 x ,她想将机器人按某种顺序排列,使得最终返回得到的 x 尽可能大。 解法一:对于任意两个函数,A在内或者B在内,推导出公式,排序 bool cmp(node a,node b){ return a.b * b.a + b.b
2021-02-26 10:51:56
179
原创 Codeforces Round #694 (Div. 2)
https://codeforces.ml/contest/1471/problems Codeforces Round #694Div. 2D. Strange Definition在归类集合的时候不一定要,找出与当前元素在同一集合的所有元素来归类集合也可以用当前元素属于某个集合来归类集合,在问题较为复杂的时候,考虑集合中元素所具有的属性来归类map写到外面的时候时间更快,在复杂度比较紧张的情况下,可以用int就用int如果每个元素都进行分解较为麻烦的话,可以考虑预处理,如此题可以把所有的元素的因子都处理
2021-02-23 23:33:16
110
原创 ACM 扫描线
今天两个小时学会了扫描线,没有在网上找到比较清晰的教程,虽然我学会了,但是我也没有信心写出一篇清晰的教程。 如果屏幕前的你也在学习扫描线的话,给你几个我在学习扫描线过程中的难点。(写的过于潦草,几乎是只给自己看的,如果看不明白请立刻去看其他博客,不要在我的漏洞百出的东西上浪费时间) 非常建议各位在学习扫描线之前用线段树把这题写出来: https://www.luogu.com.cn/problem/P3114 写出了这题 就可以不用看题解自己写出扫描线的代码了 用扫描线计算面积并: 由于并起来的图形过于复杂
2021-02-16 20:08:09
253
原创 【ACM】有关区间 数的 分解 求和 的一些简单思路,筛法思维
本文主要面向∑i=abf(i)\sum_{i=a}^b f(i)∑i=abf(i)类的公式,其中f(i)f(i)f(i)表示一种将iii进行分解的方式,比如iii的因子之和,将iii的质因子按照位数排列成十进制。 例一:https://ac.nowcoder.com/acm/contest/9982/I 用欧拉晒,在让每个数被其所有质因子筛一遍,然后在筛的过程中更新其fff最后把所有的fff相加即可。 例二:求【a,b】区间所有元素的因数和的和 考虑到 单个数计算因子较为复杂 但是1-n内所有数的因子
2021-02-04 11:07:23
276
原创 P2619 [国家集训队2]Tree I
给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有 need条白色边的生成树。 题目保证有解。https://www.luogu.com.cn/problem/P2619 我们很容易知道如何求一个 最小权 的生成树 但是我们无法保证题目中所给的数据跑出的最小生成树恰好有 need 条边 奇妙的想法是,我们可以通过修改边的权值来修改跑出的最小生成树,我们让所有的白边都加上或者减去一个 权值 q 从而得到了各种最小生成树 需要注意的是 最小生成树不唯一 也就是说相同的总权值下,有不同的画法.
2021-01-20 15:38:57
152
原创 Codeforces Round #669 (Div. 2) C
第二次写交互,题目还算简单,但是WA了三发,最后名次很差。 对于每一对数A、B来说,只需要知道A Mod B && B Mod A的值,便可以确定出AB中的某一个。 先将所有未确定的index放入队列中,然后到队列只剩一个数的时候,搜索一遍哪一个数没有被用过,给其赋值就结束了。 #include <bits/stdc++.h> using namespace std; const int Mn = 1e5+5; int a[Mn]; int d; int ans[Mn]; boo
2020-09-09 00:51:53
100
原创 【树】【数论】【DFS】Codeforces Round #665 (Div. 2)
此为自我记录,非常粗糙,像看题解的还是换一个吧 CF D题 树的简单搜索,加上一点数论 题意为:给一颗树 (E,V,W),W为边权。 让所有的边权的 * == k,然后让 最小,并且为1的边权要尽可能少的出现。 一句话分析: 1.把k进行质数分解,给边权赋值。质数是数字的最基本组成 2.图中表示任意两点组成的路径的和。 其实是每个点只和比自己序号大的点的路径之和。但是比自己小的路径,在之前就已经连过,所以是所有组合。 3.每条边贡献次数为 子树的size * (n-子树的size) https://cod
2020-08-23 12:06:18
108
原创 ACM算法数据结构【单调队列】
每一个进入队列的元素都有一个寿命,当一个新进入队列的年轻元素的值比之前进入队列的老元素的值还要大。 则这个新人可以入队之后,那些值不如他的老人就一辈子都不可能排到第一,故删除。 而这个新人,虽然值可能不是第一,但可以等到前面的老人全部去世就能排到第一。 落谷P1866滑动窗口 ...
2020-06-11 21:46:23
164
原创 ACM数据结构[线段树]的区间修改,猴子都能懂的讲解!线段树区间修改时为什么要下放懒散标记,而不是只是查询的时候才下放?
先说题目问题的结论: 以为在区间修改时需要用回溯更新父节点(tree[p]=tree[p<<1]+tree[p<<1|1]),此时更新时,某些子节点可能是“错误的”,即没有下放懒散标记。 lazy_tag 懒散标记,如果对某个区间添加懒散标记,则表示这一个区间整个都需要进行某个整体修改,这个区间能被分成的若干个区间也需要进行修改。 当更高的节点当收到这个懒散标记的命令的时,自我更新完毕后,把这个懒散标记“扣下”不下放,等待查询的时候才临时下放。 可以生动的理解为:(所有人都能读懂!!
2020-06-10 22:36:52
611
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人