传送门

nmdwsm

自己看吧,不想写了qwq

垃圾代码如下 和题解完全不一样

#define LL long long
#define uLL unsigned long long
#define il inline
#define re registerusing namespace std;
const int M=1e7+10,N=1e5+10;
il int rd()
{int x=0,w=1;char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w;
}
uLL hb[M],bb[M],bs=2333;
vector<char> cc[N];
int l[N],r[N],s[N];
bool v[N];
string fk;int main()
{freopen("3574.in","r",stdin);freopen("3574.out","w",stdout);bb[0]=1;for(int i=1;i<M-1;++i) bb[i]=bb[i-1]*bs;int T=rd();while(T--){int n=rd();for(int i=0;i<=n;++i) v[i]=0;int m=0;char ch;/*while(233){ch=getchar();if(ch=='\n'||ch==-1){++m;if(m>=n) break;l[m]=0,r[m]=-1,cc[m].clear();}else ++r[m],cc[m].push_back(ch);}*/for(int i=0;i<n;++i){l[i]=0,cc[i].clear();cin>>fk;//int nmd=((int)fk.length())-1;r[i]=((int)fk.length())-1;for(int j=l[i];j<=r[i];++j) cc[i].push_back(fk[j]);}m=n;while(233){int i=0;ch=0;while(i<m){int j=i;if(l[j]>r[j]) break;if(cc[j][l[j]]=='*') break;if(!ch||ch==cc[j][l[j]]) ch=cc[j][l[j]];else break;++i;}if(i<m||!ch) break;for(int j=0;j<m;++j) ++l[j];}while(233){int i=0;ch=0;while(i<m){int j=i;if(l[j]>r[j]) break;if(cc[j][r[j]]=='*') break;if(!ch||ch==cc[j][r[j]]) ch=cc[j][r[j]];else break;++i;}if(i<m||!ch) break;for(int j=0;j<m;++j) --r[j];}uLL ha=0;int h=0,px=0,py=1;while(h<n){uLL hh=0;bool o=0;for(int i=l[h];i<=r[h];++i){if(cc[h][i]!='*') hh=hh*bs+cc[h][i];else o=1;}if(o) {++h;continue;}v[h]=1;if(!px||ha==hh) px=1,ha=hh;else py=0;++h;}if(!py) {puts("N");continue;}if(px){int i,ma=0;for(i=0;i<n;++i)if(v[i]) {swap(cc[i],cc[0]),swap(v[i],v[0]),swap(l[i],l[0]),swap(r[i],r[0]);break;}for(i=0;i<n;++i) ma=max(ma,r[i]);hb[0]=cc[0][0];for(i=1;i<=r[0];++i) hb[i]=hb[i-1]*bs+cc[0][i];for(i=r[0]+1;i<=ma;++i) hb[i]=0;for(i=1;i<n;++i){if(v[i]) continue;ha=0;int j=l[0],k=r[0],ll=0;while(l[i]<=r[i]&&j<=k&&cc[i][l[i]]==cc[0][j]) ++l[i],++j;while(l[i]<=r[i]&&j<=k&&cc[i][r[i]]==cc[0][k]) --r[i],--k;if(l[i]<=r[i]&&(cc[i][l[i]]!='*'||cc[i][r[i]]!='*')) break;while(l[i]<=r[i]&&j<=k){if(cc[i][l[i]]!='*') ++ll,++j,ha=ha*bs+cc[i][l[i]];else{if(ll){while(j<=k&&ha!=hb[j]-hb[j-ll]*bb[ll]) ++j;if(j>k) l[i]=-233;}ll=0,ha=0;}++l[i];}while(l[i]>=0&&l[i]<=r[i]&&cc[i][l[i]]=='*') ++l[i];if(l[i]<=r[i]) break;}puts(i>=n?"Y":"N");continue;}for(int i=0;i<n;++i) s[i]=i;m=n;while(233){int i=0;ch=0;while(i<m){int j=s[i];if(l[j]>r[j]) break;if(cc[j][l[j]]=='*') swap(s[i],s[m-1]),--m,--i;else if(!ch||ch==cc[j][l[j]]) ch=cc[j][l[j]];else break;++i;}if(i<m||!ch) break;for(int j=0;j<m;++j) ++l[s[j]];}for(int i=0;i<n;++i) s[i]=i;m=n;while(233){int i=0;ch=0;while(i<m){int j=s[i];if(l[j]>r[j]) break;if(cc[j][r[j]]=='*') swap(s[i],s[m-1]),--m,--i;else if(!ch||ch==cc[j][r[j]]) ch=cc[j][r[j]];else break;++i;}if(i<m||!ch) break;for(int j=0;j<m;++j) --r[s[j]];}int c1=0,c2=0;for(int i=0;i<n;++i) c1+=l[i]>r[i]||v[i],c2+=l[i]<=r[i]&&cc[i][l[i]]=='*'&&cc[i][r[i]]=='*';puts(c1==n||c2==n?"Y":"N");}return 0;
}

md我是真的\(**\),分类讨论没考虑完全,数组开小,局部变量开的过大,没清空数组,没考虑空行,然后写了一万年,,,

8说了

转载于:https://www.cnblogs.com/smyjr/p/10412999.html

luogu P3234 [HNOI2014]抄卡组相关推荐

  1. BZOJ3574 HNOI2014抄卡组(哈希)

    容易发现通配符中间的部分可以任意匹配,会造成的无法匹配的仅仅是前后缀,前缀和后缀可以分别独立处理.如果字符串均有通配符,只需要按前/后缀长度排序然后暴力匹配就可以了. 问题在于存在无通配符的字符串.显 ...

  2. 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图

    电子界卡组构建2019 Kriptofolio应用程序系列-简介 (Kriptofolio app series - Introduction) Welcome to this series of b ...

  3. raid卡组不同raid_乐扩IO-PCE9230-4IR阵列卡组阵列教程

    乐扩IO-PCE9230-4IR阵列卡组阵列教程 第一部分: 硬件安装:关闭电脑电源 拔掉电源线,取下机箱盖: 在主板上找一个PCI Express X4,X8,或x16的插槽: 然后将阵列卡小心的插 ...

  4. ygo游戏王卡组_ACG大科普(7)游戏王

    大家是否在小时候接触过一种卡片类似这种的 这就是今天的主角游戏王. 背景 1996年,<游戏王>漫画开始在集英社<周刊少年Jump>连载. 1998年,Bandai推出以< ...

  5. ygo游戏王卡组_游戏王:二线卡组脱颖而出的战将,混沌青眼卡组,仪式卡组的骄傲...

    这次我们要说的卡组是在我的群里举办的比赛,脱颖而出的前三名卡组之一,这次我们进行的一场非常小规模的随机匹配比赛,而这次比赛的规则比较多,参赛的卡主也并不是很多只有16名,在整个游戏王系列里名不见经传的 ...

  6. rust原地复活_植物大战僵尸英雄锈铁螺栓新手卡组推荐 rustbolt多手牌陷阱恢复后期流卡组...

    今天Remilia为大家带来的是植物大战僵尸英雄电磁舞王新手卡组,这套卡组全部使用基础卡牌组成,并且拥有超强的战斗力,不会组卡牌的小伙伴来跟着Remilia一起看看吧! ▍新手卡组推荐 [陷阱卡牌]横 ...

  7. ygomobile卡组下载网站_ygomobile卡组导入攻略来了

    现实当中,很多玩家都在找ygomobile卡组导入攻略,下面就简单的为大家介绍一下,希望对大家有所帮助. 相信有不少玩家在自己的童年时代都有看到过这部动漫,游戏王的同名手游就是根据漫画改编而来的,这也 ...

  8. ygomobile卡组下载网站_YGOMobile:用手机也能免费玩游戏王

    YGOMobile是一款完全免费的线上游戏王卡牌对战软件,支持线上联机.人机对战.由garymb于2014年基于ygocore源码开发,现由伤心暗星尘.菜菜更新维护.仅支持安卓手机或其他安卓平台. 一 ...

  9. ygomobile卡组下载网站_游戏王YGOMobile

    游戏王YGOMobile根据同名人气日本动画游戏王改编,作为一款卡牌对战游戏,游戏包含了数千种卡牌内容及玩法设定,作为本作的核心怪兽卡中加入了更多品质的怪兽,每种怪兽牌都有各自的上场效果.玩家需要按照 ...

最新文章

  1. c#中结构与类的区别
  2. 美链BEC合约漏洞技术分析 1
  3. 中等数学类杂志投稿信箱
  4. android 推送的小图标,android - 推送通知中没有声音并且没有自定义的小图标 - 堆栈内存溢出...
  5. 1584 - Circular Sequence
  6. Java集合---面试题
  7. 算法(四):图解狄克斯特拉算法
  8. 6.Java反射到底慢在哪
  9. STL算法入门基础【OI缩水版】
  10. 扇贝有道180930每日一句
  11. 计算机开放电子书 2016 归档
  12. 【逗老师带你学IT】PRTG、Zabbix通过API监控深信服VDC和VMP云桌面运行状态
  13. 创建、清除interval定时器/interval定时器无法清除/判断定时器是否存在
  14. 应届生工资排行榜,北上广深杭数据对比(基于320份简历)
  15. 16s测序 | 如何轻松发表文章
  16. 关于“信息、物质、能量”,你所不知道的有趣联系
  17. 长度测试仪:可测量网线/电话线/光纤等的长度
  18. Python表白:你值你值得拥有,找不到对象你来找我,这也太秀了叭
  19. 如何申请腾讯云免费ssl证书并部署
  20. SQLmap 扫描工具的使用

热门文章

  1. linux shell带索引下标遍历数组
  2. go基本语法:channel未关闭遍历结束后会报错deadlock
  3. 【网址收藏】Percona-xtraDB-cluster的安装、配置和使用 PXC
  4. linux case if for语法
  5. notepad++安装
  6. Linux yum包管理工具常用命令示例
  7. linux sort排序工具和uniq去重工具使用示例
  8. MySQL搭建主从复制架构实战
  9. 【软考-软件设计师】CPU的功能与组成
  10. Mybatis中的resultType与resultMap区别