• SD省队集训day


    Day-2【游记】

    8:00

    心情平稳,反正还是啥都不会

    开T1,发现是傻逼题,做做做

    然后发现自己傻逼,做法假了,之后又重构

    之后拍拍拍

    10:30

    终于跑过自己造的数据了,我心情愉悦,心想今天怎么着分数还是三位数

    这样想着,我拿题面给的样例跑了一下,不出所料,WA

    我并没有心慌,因为这种小样例WA了往往能查出来,而且能发现代码潜在的bug

    好嘞,我们来看看这个方案的花费是多少

    (1+2+2=5)

    卧槽样例给的是 (6) 啊,我不会hack了吧...

    赶紧问问兔队

    哦,原来是...

    我TMD读错题了!

    这还了得?合着我2h20min啥事没干呗...

    ++可不能没分啊,我赶紧去看T2,暴力 (O(n^3))

    一看卷积式,不管了拿NTT碾,(O(n^2log n))

    调出来已经是11:30了,然后我赶紧回去打T1

    急急慌慌中成功没有看出来T2 (O(n^2)) 的做法,而这正是推出正解所需要的

    然后去干T1,然后发现还是傻逼题,很快的打好

    最后要做的就是输出方案了!

    卧槽那个天杀的出题人想出来要输出方案的

    发现自己完全不会输出方案啊...

    最后还是使劲做了做,至少题面的样例过了

    T3一看不可做,部分分似乎也不好做

    放弃.jpg

    结束,估分 ([8,100]+[20,60]+0=[28,160])

    拿满能很高,FST能很惨

    我更相信我会FST,因为T1的输出方案是真的要命

    14:30

    出分,好家伙挂成狗了,(10+35+0=45)

    失去高光.jpg

    然后有意思的是T2直接输出998244352然后-rand()能 (75)

    自己的T1真就nmd全部挂在输出方案上了

    今天真就要命round

    自己还是太弱了啊...

    Day-2【题解】

    我已经完全理解了 DFS 序线段树(segtree)

    状态:Accepted | 难度:Medium

    CF的这题跟T1差不多(输出方案的形式与判定不同),于是我们直接拿这题来做

    Q:原题呢?

    A:算了不管了

    完全没有想到最小生成树

    我一开始用的树形dp,比较简单,但是方案输出毒瘤,不做叙述

    事实上根据题目名称我们可以知道利用dfs序

    怎么利用呢?根据树链剖分时的思想,dfs序可以将树上的子树变成序列的形式

    而这题正是序列操作

    于是我们将每个点控制的子树化为差分,并从 (l)(r+1) 连边

    之后求MST

    在求MST的过程中,对于每个能加入集合的权值,循环遍历有没有与其相等并且也可以加入集合的,将其也累计至答案中

    然后本题就做完了

    我已经完全理解了字符串哈希(strhash)

    状态:Accepted | 难度:Easy+/Medium-

    因为T1看错题面而没思考这题,说到底还是我菜

    首先对于

    [h(s)=left(sumlimits_{i=1}^{|s|} ext{base}^{|s|-i}s_i ight)mod m ]

    不要被这个卷积式所迷惑,事实上,后面是可以 (O(n^2)) 枚举,然后 (O(1)) 计算的

    具体的,设 (h_i) 为从开头到第 (i) 个位置形成的子串的hash值

    (s_{l,r}) 表示从第 (l) 个位置到第 (r) 个位置上的字符连成的字符串

    那么对于一个子串 (s_{l-1,r}),它的hash值为 (h_r- ext{base}^{r-l}h_l)

    对于随机的 (Theta(n^2)) 个变量,其最大值的期望在 (m-dfrac{m}{n^2}) 附近

    因此我们可以枚举模数,然后判断是否可行

    (h_r- ext{base}^{r-l}h_l=x)

    这东西很好处理,类似BSGS,移项然后乘一乘,得:

    ( ext{base}^{n-r}(h_r-x)= ext{base}^{n-l}h_l)

    插入hash表然后查询即可,因为并没有在线提交地址所以放上代码

    卡nm的常数啊(

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<unordered_map>
    #define N 2000010
    #define M 5001
    #define INF 1100000000
    #define Kafuu return
    #define Chino 0
    #define R register
    #define C const
    #define U unsigned
    #define fx(l,n) inline l n
    #define set(l,n,ty,len) memset(l,n,sizeof(ty)*len)
    #define cpy(f,t,ty,len) memcpy(t,f,sizeof(ty)*len)
    using namespace std;
    C int mod=998244353,base=2333333;
    fx(int,gi)(){
    	R char c=getchar();R int s=0,f=1;
    	while(c>'9'||c<'0'){
    		if(c=='-') f=-f;
    		c=getchar();
    	}
    	while(c<='9'&&c>='0') s=(s<<3)+(s<<1)+(c-'0'),c=getchar();
    	return s*f;
    }
    int T,len,bpow[N],ha[N],bg[N],ans,i,o;
    char s[N];
    unordered_map<int,bool>hs;
    bool can;
    signed main(){
    	freopen("strhash.in","r",stdin);
    	freopen("strhash.out","w",stdout);
    	T=gi();bpow[0]=1;
    	for(R int i=1;i<2000001;i++) bpow[i]=1ll*bpow[i-1]*base%mod;
    	while(T--){
    		scanf("%s",s);
    		len=strlen(s);ans=0;
    		ha[0]=s[0]-'a'+1;
    		for(i=1;i<len;i++){
    			ha[i]=(1ll*ha[i-1]*base%mod+(s[i]-'a'+1))%mod;
    			bg[i]=1ll*ha[i]*bpow[len-i]%mod;
    		}
    		if(len<=4000){
    			for(i=0;i<len;i++){
    				for(o=i;o<len;o++){
    					ans=max(1ll*ans,(ha[o]-1ll*(i-1<0?0:ha[i-1])*(o-i+1<0?0:bpow[o-i+1])%mod+mod)%mod);
    				}
    			}
    			printf("%d
    ",ans);
    		} else {
    			for(i=mod-1;i;i--){
    				hs.clear();can=0;
    				for(o=0;o<len;o++){
    					if(hs[1ll*(ha[o]-i+mod)*bpow[len-o]%mod]==1){
    						can=1;break;
    					}
    					hs[bg[o]]=1;
    				}
    				if(can){
    					printf("%d
    ",i);break;
    				}
    			}
    		}
    	}
    }
    

    我已经完全理解了多源 BFS(multbfs)

    状态:Unaccepted | 难度:Hard

    Luogu链接

    CodeForce *3500的题,暂时不可做

    Orz tyy场切并吊打标算,唐椰叶yyds!

    Day-2【补题】

    补题的题解并不放在这里,具体来说,它放在了题目泛刷记录3

  • 相关阅读:
    Linux的web服务的介绍
    Linux的DNS主从服务器部署
    K8S Calico
    K8S flannel
    K8S dashboard
    K8S RBAC
    kubernetes认证和serviceaccount
    K8S 部署 ingress-nginx (三) 启用 https
    K8S 部署 ingress-nginx (二) 部署后端为 tomcat
    K8S 部署 ingress-nginx (一) 原理及搭建
  • 原文地址:https://www.cnblogs.com/zythonc/p/14726162.html
Copyright © 2020-2023  润新知