ACM
WangBaoYan1
这个作者很懒,什么都没留下…
展开
-
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 · 1206 阅读 · 0 评论 -
2021沈阳 D. Journey to Un‘Goro 简简单单打个表
https://codeforces.com/gym/103202/problem/D1.首先对于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 · 1509 阅读 · 0 评论 -
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 · 227 阅读 · 0 评论 -
除式 的最优解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 · 70 阅读 · 0 评论 -
Codeforces Round #680(数学题,约数 绝对值)
https://codeforces.ml/contest/1445/problemsA水题,但注意要全部读入完成再输出结果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 · 133 阅读 · 0 评论 -
字符串问题
注意字符串往往具有可二分性(子串具有母串的性质)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 longchar s[Mn],t[Mn];ull hs[Mn],ht[Mn];const ull base = 131;u原创 2021-03-05 22:21:06 · 77 阅读 · 1 评论 -
2018-2019 ACM-ICPC, Asia Nanjing Regional Contest
https://codeforces.ml/gym/101981A 博弈 (相关专题待补)博弈的精髓在于对称此处的对称有两种,一 ,后手让局面永远保持某种状态 如 min博弈中的(m+1)(m + 1)(m+1)状态二 ,在多组数据博弈当中,两堆相同的元素,可以进行模仿,从而达到必胜(和SG中的异或有类似I 网络流,两边二分匹配或者多连接一个次源点,让源点和次源地的流量为k,次源点同样连接每一个n有些细节需要注意now和head,每次只会Dfs查询Bfs已经跟新过的范围,head的初始值只与原创 2021-03-05 22:20:33 · 84 阅读 · 0 评论 -
DFS与匈牙利算法,JAVA注意事项
2021牛客寒假算法基础集训营5 ADfs相邻的最小的最大值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 longint vis[Mn];ll ans = 0原创 2021-03-03 22:40:24 · 103 阅读 · 2 评论 -
状压DP小技巧
一个数有多少位1for(int i = 1;i <= 1024;i ++) w[i] = w[i ^ i & -i] + 1;原创 2021-03-03 18:19:39 · 63 阅读 · 1 评论 -
Codeforces Round #694 (Div. 2)
https://codeforces.ml/contest/1471/problemsCodeforces Round #694Div. 2D. Strange Definition在归类集合的时候不一定要,找出与当前元素在同一集合的所有元素来归类集合也可以用当前元素属于某个集合来归类集合,在问题较为复杂的时候,考虑集合中元素所具有的属性来归类map写到外面的时候时间更快,在复杂度比较紧张的情况下,可以用int就用int如果每个元素都进行分解较为麻烦的话,可以考虑预处理,如此题可以把所有的元素的因子都处理原创 2021-02-23 23:33:16 · 65 阅读 · 0 评论 -
ACM 扫描线
今天两个小时学会了扫描线,没有在网上找到比较清晰的教程,虽然我学会了,但是我也没有信心写出一篇清晰的教程。如果屏幕前的你也在学习扫描线的话,给你几个我在学习扫描线过程中的难点。(写的过于潦草,几乎是只给自己看的,如果看不明白请立刻去看其他博客,不要在我的漏洞百出的东西上浪费时间)非常建议各位在学习扫描线之前用线段树把这题写出来:https://www.luogu.com.cn/problem/P3114写出了这题 就可以不用看题解自己写出扫描线的代码了用扫描线计算面积并:由于并起来的图形过于复杂原创 2021-02-16 20:08:09 · 170 阅读 · 0 评论 -
P2619 [国家集训队2]Tree I
给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有 need条白色边的生成树。题目保证有解。https://www.luogu.com.cn/problem/P2619我们很容易知道如何求一个 最小权 的生成树但是我们无法保证题目中所给的数据跑出的最小生成树恰好有 need 条边奇妙的想法是,我们可以通过修改边的权值来修改跑出的最小生成树,我们让所有的白边都加上或者减去一个 权值 q从而得到了各种最小生成树需要注意的是最小生成树不唯一也就是说相同的总权值下,有不同的画法.原创 2021-01-20 15:38:57 · 108 阅读 · 0 评论 -
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 · 77 阅读 · 0 评论 -
ACM算法数据结构【单调队列】
每一个进入队列的元素都有一个寿命,当一个新进入队列的年轻元素的值比之前进入队列的老元素的值还要大。则这个新人可以入队之后,那些值不如他的老人就一辈子都不可能排到第一,故删除。而这个新人,虽然值可能不是第一,但可以等到前面的老人全部去世就能排到第一。落谷P1866滑动窗口...原创 2020-06-11 21:46:23 · 115 阅读 · 0 评论 -
ACM数据结构[线段树]的区间修改,猴子都能懂的讲解!线段树区间修改时为什么要下放懒散标记,而不是只是查询的时候才下放?
先说题目问题的结论:以为在区间修改时需要用回溯更新父节点(tree[p]=tree[p<<1]+tree[p<<1|1]),此时更新时,某些子节点可能是“错误的”,即没有下放懒散标记。lazy_tag 懒散标记,如果对某个区间添加懒散标记,则表示这一个区间整个都需要进行某个整体修改,这个区间能被分成的若干个区间也需要进行修改。当更高的节点当收到这个懒散标记的命令的时,自我更新完毕后,把这个懒散标记“扣下”不下放,等待查询的时候才临时下放。可以生动的理解为:(所有人都能读懂!!原创 2020-06-10 22:36:52 · 444 阅读 · 2 评论