要怀着一颗学徒之心
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
``` #include using namespace std; const int N=1e5+10; int n,s; struct line{ int s,t,go; double k,b; }l[N]; double fuction(int x,int i){return x*l[i].k+l[i].b;}…
关键问题: **将二分点前面按数值从小到大排序会不会使原来不会影响二分点的在排序后变得会影响二分点?** 二分点前的全可以拿到礼物 将其分为:可以影响到二分点的与不会影响二分点的 可以影响到二分点的一定会去影响二分点 不可以影响二分点的会始终在二分点前面。那么它在二分点被影响后也会在二分点前面,但在二分点被影响后,它就…
- 优先队列退空栈会有问题,栈的大小会变得特别大,但不会报错 问题MAX太小,1《7=128,可用INT_MAX替代自己定义 ``` #include using namespace std; const int N=5e4; const int MAX=1 w =0;i--) if(deep[_fa[a][i]]>=…
费劲千辛万苦终于过了!!! 正解还是很好想的,每次选会对总时间影响最大的边去加速就好了。 然后是每条边加速后的影响,从这个角度去想,想清楚了这道题就差不多拿下了。 问题在于我想到正解后,代码好久都没写出来,卡在了下面注释的地方QAQ。 ``` #include using namespace std; const in…
贪心 树,m条路径,求最大路径的权值和路径上的最大边 lca加前缀和可以nlongn求最大权值,n求最大边 1,删了最大边之后,该路不一定就是最大路径了 2,删了最大边会影响其它路的权值 删肯定删最大路径上的最大边 路的权值重新全部算一遍吧(可优化我觉得) 删最大边不对的,当有次大边与最大路径有重合时, 如果重合的边不…
这道题,很容易想到先把最近的人聚在一起,剩下一个人去找他们,加上是树,想到求Lca。集合的点肯定是两两的Lca之一。最简单思路就是3个点都算出来。 1.不把6个点都算出来,又为了避免都在同一子树上往上走的浪费,故想到了以其中一个点为根,跑tarjan 40pts: ``` #include using namespac…
算法竞赛上有讲解 **差分将对区间操作转换为对点操作,降低复杂度** 想的时候以为算前缀和是从根往下算,这样就不能充分利用上差分,卡了一会 100pts: ``` #include using namespace std; const int N=1e6+5; int n,m,s,ans; int head[N],nx…
倍增: ``` #include using namespace std; const int N=1e6+5; int n,m,s; int head[N],nxt[N],to[N],cnt; int deep[N],fa[N][25]; void add(int u,int v){ nxt[++cnt]=head[…
n个点,分k份,使靠的最近的两份距离尽可能大 最小的最大,~~触发二分关键词,倒也可以做~~ 朴素想法:离越近越应该分在一起,至少比不分在一起好 实现的话就类似最小生成树的kruskal算法 需要注意的是,如果简单粗暴地存边,需要把数组开到n方,即1e6 100pts: ``` #include using names…
``` int find(int a){ if(fa[a]!=a) return fa[a]=find(fa[a]); return fa[a]; } ``` 错误合并: ``` u=edge[i].u,v=edge[i].v; if(find(u)!=find(v)){ fa[v]=find(u); } ``` 合并…
这道题的关键在于如何用卫星电话去替换掉最小生成树上的最大边 先是以为两个电话组组成单一的一条边 60pts: ``` #include using namespace std; const int N=505; const int Max=20000; struct Node{ int x,y; }node[N]; d…
想到了一一对应,但之后去想怎么在区间内表示这关系,然后存在st表中。 但这种关系是很难储存在区间内的,为什么不可以只是记录下来这关系然后再进行运算呢。 我太想单纯地用数据结构去解决这道题,但数据结构本身有着特定的功能,我应该只把它当成一种工具来用。 **数据结构不是算法** 这道题挺好的,指出了我思维上的这个错误,**…
想到问题了,这样并不能遍历完所有区间,只能走到(1 using namespace std; const int N=6e5+5; int n,st[N][20],lg[N],ans; int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); cin>…
P2880 [USACO07JAN] Balanced Lineup G P1890 gcd区间 P3865 【模板】ST 表 && RMQ 问题 以上三题总结 _**对于st表需要注意的是各个位置的边界,+1-1**_ **st表预处理标程:** ``` lg[1]=0; for(int i=2;i >1]+1; f…
~~反方向的钟~~ 事实证明就算知道正解我也不一定写的出来 ans*=a%MOD等于没模 *=(a%MOD) 尽量模块化,别写一堆 40pts: ``` #include using namespace std; #define ll unsigned long long const int MOD=1e9+7; co…
在讨论《为什么我谷测评现在要验证码了?》回复:
@[Lionel_Messi_10](luogu://user/1376362) 有点逆天
考场20,多骗10有3= 60pts: ``` #include using namespace std; const int N=1e5+5; string s1,s2,t1,t2; int a[N],b[N]; int u1[N][2],u2[N][2],cnt1,cnt2; int n,ans; void wor…
在讨论《求一个好用的mp4转avi》回复:
格式工厂
在讨论《关于NOIP难度》回复:
难
看题要没看懂就去推样例,想到有问题的地方就去推一下,别空想 40pts: ``` #include using namespace std; int n,m,k[3005],k2[3005]; char s[3005]; int main(){ memset(k,127,sizeof(k)); scanf("%d%d"…
rt ps:下面是自己写的搜索,但跑样例2要10多秒,求优化 ``` #include #define ull unsigned long long using namespace std; const int MOD=998244353; int n,m,k; int v[105],a[105],b[105]; ul…
在讨论《为什么会T 玄关》回复:
全T
筛法 ``` #include //#define int long long using namespace std; const int N=1e7+5; int no[N]; bool is7(int x){ if(x%10==7) return true; else if(x>10) return is7(x/…
只有负数会导致不合法,故记录所有负数位置,从负数往前判有几个不合法起点。 ok[]避免重复计算 ``` #include using namespace std; const int N=2e6+5; int n; int a[N]; int b[N],tot; int ans,js; bool ok[N]; int…
个人觉得是区间计算时精度的问题,但找不出来 ``` #include using namespace std; const int N=1e6+5; int n,m,L,V; struct ca{ int l,r; }car[N]; int cnt; int ch[N]; int liu[N]; int js,jss;…
在讨论《CSP炸测评机会怎么?有人炸过吗?》回复:
@[a590784](/user/644279) 交上去得程序ccf肯定会跑的呀。 与其是炸倒不如说是卡测评机
在讨论《S组T1怎么做》回复:
堆加模拟
在讨论《S组T1怎么做》回复:
不会吧哥们,就T1最简单了