流水不争先,争的是滔滔不绝
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
## 思路: 首先这道题是和它的弱化版不一样的。必须用到预处理。经过推理发现每个由井号组成的连通块有一个规律:画一个刚好能够框住该连通块的矩形,再以该矩形为重叠部分画一个十字,该十字所覆盖的面积即为这个连通块会波及到的区域。对于这样的面积我们用二维差分求解。连通块的部分用并查集,然后每次合并更新新的连通块的疆域。 ##…
``` #include using namespace std; #define int long long const int N=1e6+5; int t,n,m,fa[N],dx[5]={1,0,-1,0},dy[5]={0,1,0,-1},sz[N],ans,a[N],d[N]; int nor[N],wes…
## 思路: 首先根据贪心策略,我们知道最后的结果是由每棵树的直径共同决定的。因此,我们把每棵树的直径的重点当作它的根,然后再次贪心,把选择一棵直径最长的树,把它的根和其他树的根项链,最后再求一边全部树的直径即可。 ## 难点分析: 贪心策略;树的直径的求法;菊花图。 ## 代码: 树的直径模板: ``` #inclu…
在文章《题解:AT_abc384_f [ABC384F] Double Sum 2》发表评论:
不过memset确实是必须的
在讨论《(必关)思路求证:连接每棵树的时候为什么不能连接每棵树的重心?》回复:
@[Doqe](luogu://user/220558)谢谢,关注了
在讨论《(必关)思路求证:连接每棵树的时候为什么不能连接每棵树的重心?》回复:
@[Exp10re](luogu://user/403069)谢谢,已关注
在讨论《关于multiset》回复:
``` auto it=s.upper_bound(x); it--; ``` @[willAK](luogu://user/944510)
本人的做法是连接每棵树的重心。虽然我知道连接中点一定是对的,但是不知道为什么连接重心不是对的。重心可以让整棵树的各子树分布更加均衡,这样应该也不是不行啊?求证明或证伪
在文章《题解:CF1137D Cooperative Game》发表评论:
又在写题解?
``` #include using namespace std; #define FOR(x,a,b) for(int x=a,I=b;x >n>>m; sz=0; FOR(i,1,n) cin>>s[i],s[i]=" "+s[i]; vector > g(n+2,vector (m+2,0)); vector >…
## 思路: 很明显是并查集。注意到数据范围,可以直接枚举加入的那一行或者列的具体下标,然后扫一遍它的上下左右四个方向的井号格子,把没有被统计的原有井号格子连通块加入答案中,并且标记已经统计过的原有连通块。另外就是这道题需要把下标哈希化。更多细节见代码。 ## 代码: ``` #include using namesp…
## 思路: 首先,这是一道构造题。题目中说到,要求构造一种能够通过不超过限度次数的交换使得序列变得有序。由于题目中没有说必须要最优,所以只需要构造一种不超过限度的即可。 有一种较为优秀的构造方法:首先把各种交换关系抽象成一张图,如果有一个点和它想要变成的值不在同一个连通块里面,就说明无论怎样换都换不出有序序列。此时直…
在文章《题解:CF150B Quantity of Strings》发表评论:
好吧最后我发现并查集不用分类讨论k和n的大小关系
在讨论《学术问题求问(玄关)》回复:
@[小粉兔](luogu://user/10703)所以还是要多一些操作才能删掉反向迭代器对吧?
在讨论《学术问题求问(玄关)》回复:
@[小粉兔](luogu://user/10703) 所以说erase的时候不能直接删掉反向迭代器吗
## 思路: 不难发现,如果把题目中要求的那些字符之间必须相等的关系抽象成图上的边,每个连通块内部都两两相等,就可以把这道题转化为一道基础图论题。注意到数据范围很小,所以我们可以把每个回文子串当中的每个下标枚举一遍,对应的字符看作给它们两个建了一条边,然后用并查集求解。不过答案可能很大,所以还要再加一个快速幂。 答案是…
## 判环 几大判环方法: DFS(有向图): ``` void check(int u){ use[u]=1; for(int i:g[u]){ if(use[i]==1){ f=1; return ; } if(use[i]==0)check(i); } use[u]=2; } ``` 拓扑排序: ``` bool…
``` #include using namespace std; #define int long long int t,n,m; double len,speed,d[200005],a[200005],v[200005],p[200005]; struct node{ int l,r; }cho[200005];…
在讨论《0ptsMLE了,为什么?》回复:
@[CarroT5656](/user/607102) %%%还是贪心大佬
在讨论《0ptsMLE了,为什么?》回复:
@[CarroT5656](/user/607102) 额,dp应该是这样写的吧
在讨论《0ptsMLE了,为什么?》回复:
@[CarroT5656](/user/607102) 那要是我把string改成map是不是就过了?
在讨论《是否需要提前退役》回复:
@[HMZHMZHMZ](/user/428089) “较小的年龄”“开子”?
``` #include using namespace std; #define int long long const int N=1e5; int q,n,dp[200005],use[15]={6,2,5,5,4,5,6,3,7,6}; string ans[200005]; char changeit(int…
在讨论《关于STL中multiset的一个疑问(悬关)》回复:
@[XuYueming](/user/728079) Forbidden了