首页 > 其他分享 >12.12闲话

12.12闲话

时间:2023-12-12 21:36:56浏览次数:23  
标签:cnt ch putchar int 闲话 void 12.12 inline

推歌

梨花香

缠着衣角掠过熙攘

复悄入红帘深帐

听枝头黄鹂逗趣儿

细风绕指淌

坐船舫

兰桨拨开雾霭迷茫

不觉已一日过半

过眼的葱郁风光

悉数泛了黄

褪尽温度的风

无言牵引中

便清晰了在此的眉目

暮色的消融

隐约了晦朔葱茏

在这老街回眸

烟云中追溯我是谁

只消暮雨点滴

便足以粉饰这是非

待这月色涌起

谁人轻叩这门扉

苔绿青石板街

斑驳了流水般岁月

小酌三盏两杯

理不清缠绕的情结

在你淡漠眉间

瞥见离人的喜悲霜雪

楼阁现

尘飞雾散荧光翩跹

显露出斑驳石阶

入眼是落英纷然

芳草入深院

凭栏杆

小桌上置琼觞两盏

阖眼听清风疏叶

似曾有欢声笑言

萦绕这高轩

云动寂静鸣蝉

雨坠激漪涟

皴擦点染勾勒这世间

缘起的一眼

定格了三生千年

在这老街回眸

烟云中追溯我是谁

只消暮雨点滴

便足以粉饰这是非

待这月色涌起

谁人轻叩这门扉

苔绿青石板街

斑驳了流水般岁月

小酌三盏两杯

理不清缠绕的情结

在你淡漠眉间

瞥见离人的喜悲霜雪

三月梨花雪

几载开了又败

笔锋走黑白

丹青中穿插无奈

彼时那弯儿月

何时初现于江畔

而我又在待何人

在这亭台 回眸

千年后忆起你是谁

只消月色隐约

便足以勾勒这是非

待这回忆涌起

恍惚之间已下泪

枫红十里长街

红帘后谁人蹙着眉

遥梦桑竹桃源

轮回中曾道别的地点

愿今生再相见

消融你眉间悲戚霜雪

今天只打了一道字符串,光给别人讲题了,输输输

Bovine Genomics

给定\(n\)个A串和\(n\)个B串,长度均为\(m\),求一个最短的区间\([l,r]\)

使得不存在一个A串\(a\)和一个B串\(b\),使得\(a[l,r]=b[l,r]\)

CODE
 #include<bits/stdc++.h>
   #define int long long
   #define maxm 0X66CCFF
   #define N 510
   namespace IO{
       inline void close(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);}
       inline void Fire(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
       inline int read(){int s = 0,w = 1;char ch = getchar();while(ch<'0'||ch>'9'){ if(ch == '-') w = -1;ch = getchar();}while(ch>='0'&&ch<='9'){ s=(s<<3)+(s<<1)+ch-'0';ch = getchar();}return s*w;}
       inline void write(int x){char F[200];int tmp=x>0?x:-x,cnt=0;;if(x<0)putchar('-') ;while(tmp>0){F[cnt++]=tmp%10+'0';tmp/=10;}if(cnt==0)putchar('0');while(cnt>0)putchar(F[--cnt]);putchar(' ');}
   }
   using namespace IO;
   using namespace std;
   const int P1=315716251,P2=475262633;
   int a,b;
   struct Hash{
       int h1[N],h2[N],z1[N],z2[N];
       inline void Init(const char *s){
           int n=strlen(s+1);
           const int b=131;
           z1[0]=z2[0]=1;
           for(register int i=1;i<=n;i++){
               z1[i]=z1[i-1]*b%P1;
               z2[i]=z2[i-1]*b%P2;
               h1[i]=(h1[i-1]*b+(s[i]-'A'+1%P1))%P1;
               h2[i]=(h2[i-1]*b+(s[i]-'A'+1%P2))%P2;
           }
       }
       inline int Get1(int l,int r){
           return (h1[r]-h1[l-1]*z1[r-l+1]%P1+P1)%P1;
       }
       inline int Get2(int l,int r){
           return (h2[r]-h2[l-1]*z2[r-l+1]%P2+P2)%P2;
       }
   }aaa[N],bbb[N];
   map<long long,bool> mp1,mp2;
   inline bool Check(int n){
       for(register int i=n;i<=b;++i){
           bool f=1;
           mp1.clear(),mp2.clear();
           for(register int j=1;j<=a;++j){
               mp1[aaa[j].Get1(i-n+1,i)]=true;
               mp2[aaa[j].Get1(i-n+1,i)]=true;
           }
           for(register int j=1;j<=a;++j){
               if(mp1[bbb[j].Get1(i-n+1,i)]) f=0;
               if(mp2[bbb[j].Get1(i-n+1,i)]) f=0;
           }
           if(f) return true;
       }
       return false;
   }
   char aa[510][510];
   char bb[510][510];
   signed main(){
       #ifndef ONLINE_JUDGE
       freopen("1.in","r",stdin);
       freopen("1.out","w",stdout);
       #endif
       a=read(),b=read();
       for(register int i(1);i<=a;++i){
           scanf("%s",aa[i]+1);
           aaa[i].Init(aa[i]);
       }
       for(register int i(1);i<=a;++i){
           scanf("%s",bb[i]+1);
           bbb[i].Init(bb[i]);
       }
       int l(1),r(b);
       while(l<r){
           int mid((l+r)>>1);
           if(Check(mid))r=mid;
           else l=mid+1;
       }
       write(l);
   }

Trie,即字典树

这棵字典树用边来代表字母,而从根结点到树上某一结点的路径就代表了一个字符串

非常好理解,爱来自KMP和hash

From OI-wiki

From K8He
image

点击查看代码
#include<bits/stdc++.h>
#define int long long
#define MAXM 0X66CCFF
#define MAXN 0X6CF
const int INF=0X66CCFF0712;
namespace IO{
    inline void close(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);}
    inline void Fire(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
    inline int read(){int s = 0,w = 1;char ch = getchar();while(ch<'0'||ch>'9'){ if(ch == '-') w = -1;ch = getchar();}while(ch>='0'&&ch<='9'){ s=(s<<3)+(s<<1)+ch-'0';ch = getchar();}return s*w;}
    inline void write(int x){char F[200];int tmp=x>0?x:-x,cnt=0;;if(x<0)putchar('-') ;while(tmp>0){F[cnt++]=tmp%10+'0';tmp/=10;}if(cnt==0)putchar('0');while(cnt>0)putchar(F[--cnt]);putchar(' ');}
}
using namespace IO;
using namespace std;
struct TRIE{
    struct TR{
        int nxt[26];
        bool end;
    }tr[MAXN];
    int tot=1;
    inline void ADD(char *s){
        int len(strlen(s+1)),p(1);
        for(int i=1;i<=len;++i){
            tr[p].nxt[s[i]-'a'] = !(tr[p].nxt[s[i]-'a']) ? ++tot : 0;
            p=tr[p].nxt[s[i]-'a'];
        }
        tr[p].end=1;
    }   
    inline bool FIND(char *s){
        int len(strlen(s)),p(1);
        for(int i=1;i<=len;++i){
            if(!tr[p].nxt[s[i]-'a']) return 0;
            p=tr[p].nxt[s[i]-'a'];
        }
        return(tr[p].end);
    }    
}Trie;
signed main(){
    #ifndef ONLINE_JUDGE
        freopen("1.in","r",stdin);
        freopen("1.out","w",stdout);
    #endif 
}

01-Trie 是指字符集为 \(\{0,1\}\) 的 Trie

把数字转为二进制塞到01-Tire里可以解决一些异或的问题

异或有着按位考虑的性质,每一位的贡献是分开的,而Trie正好是按照位来存深度的,这不吻合了吗然后乱搞就行

  • 维护异或极值

好像乱搞就行

  • 维护异或和

维护异或和只需要知道某一位上0和1的奇偶性而不关注到底有几个0和1


Trie还是AC自动机的基础???

按理说KMP和Trie学完我应该可以开AC自动机了,做完题就开

标签:cnt,ch,putchar,int,闲话,void,12.12,inline
From: https://www.cnblogs.com/LuoTianYi66ccff/p/17897328.html

相关文章

  • Solution Set 2023.12.12
    ABC332GNotTooManyBalls可以转化为最大流模型,设节点\(x_i\)代表第\(i\)种球,\(y_j\)代表第\(j\)个盒子。考虑如下建边方案:\(S\rightarrowx_i\),容量为\(A_i\)\(x_i\rightarrowy_j\),容量为\(i\timesk\)\(y_j\rightarrowT\),容量为\(B_j\)可以发现该网络......
  • 12.12邻接表存储实现图的深度优先遍历(c++)
    今天学习了数据结构中的邻接表存储实现图的深度优先遍历,其中让我受益匪浅,以下是我的解题思路。编写程序,实现由邻接表存储实现无向图的深度优先搜索遍历的功能。顶点为字符型。输入格式:第一行输入顶点个数及边的个数,第二行依次输入各顶点,第三行开始依次输入边的两个顶点,用空格......
  • 12.12日记
    defGet_Detail(Details_Url):   Detail_Url=Base_Url+Details_Url   One_Detail=requests.get(url=Detail_Url,headers=Headers)   One_Detail_Html=One_Detail.content.decode('gbk')   Detail_Html=etree.HTML(One_Detail_Html)   Detail_Conte......
  • 闲话12.11
    我是haosen的......
  • 闲话12.10
    不想邵帅杰。不想收手机。早上吃饭,妈的BJ食堂也不算太贵啊......
  • 12.10闲话
    唐今天和HS_xh吃饭互相爆典先是我在学校食堂买了个臭鸡蛋然后我"吾日三省吾身:买到臭鸡蛋了吗?"HS_xh:"买到臭鸡蛋了吗?怎么买到的?买到了怎么办"我:“哥我错了,别唐了”HS_xh:"我是唐玄宗"我:\("?"\)然后HS_xh没带勺子和筷子但是买了碗麻辣烫HS_xh:"哥能不能把饭卡给我我买个勺......
  • 闲话12.9
    来BJ啦。上午学考不说了......
  • 12.9闲话
    奋战冬三月昨日跑操排名第一名...第二名....第三名....倒第一....到第二....到第三....奋战冬三月昨日扣分明细xx班有人掉队扣30分xx班有人拒报学号扣30分....好各班,操前班呼!一班,跑步,走!2班跟上!....9班和十班的班距缩小!!十一班十二班缩小班距!跟上!13班口号声音很响!..........
  • 闲话12.8
    颓。上午把物理样卷2做了,AK了。然后看了一个小时生物就润去考生物了,没啥感觉,不会的也不多,勉强能上90pts?发现lyt的准考证上写的班级是B20......
  • 12.8 闲话
    K8这几天不在,原来是每天写3000道题,从一个连深搜都写的对的dalao成长为NOIAKer,创造了NOIP一百九十多省选600分的奇迹,这几天不在已经刷了24000道了我去今天我怎么疯狂被JC,错了哥原来\(K8\)说的二分图不重要说的是可以用网络流代替「重要提醒」:学过网络流后你会发现这玩意很不重......