是套废题。T1题面错了,T2细节多而暴力>部分分,T3题目错了。

T1:打表

题面应该是输出差值期望而不是答案值期望。

看到题目,果断打表。

答案就是所有值差之和除2的k次方。

 #include<cstdio>
int k,a[];long long ans;
int main(){
freopen("table.in","r",stdin);freopen("table.out","w",stdout);
scanf("%d%lld",&k,&ans);
for(int i=;i<<<k;++i)scanf("%d",&a[i]);
ans=a[ans];
for(int i=;i<<<k;++i)a[i]-=ans;
for(int i=;i<<<k;++i)if(a[i]<)a[i]*=-;ans=;
for(int i=;i<<<k;++i)ans+=a[i];ans%=;
for(int i=;i<=k;++i)ans=ans*%;
printf("%lld\n",ans);
}

T2:蛇

蛇的路径一定是先走一个左括号形,再曲折右走,再走一个右括号。

Hash。处理左括号右括号。

dp。处理曲折前行。

左括号的预处理答案作为dp数组的初值。

细节很多,注意单独一个左括号/右括号的情况。

注意长度为1的括号不算括号,但是长度为0的算。

调4个小时就能AC了。

 #include<bits/stdc++.h>
using namespace std;
#define ul unsigned long long
const int mod=1e9+;
int ans,n,l,dp[][][],DP[][][],ok=;
char s[][],S[];ul hsh[][],ihsh[][],shsh[],pw[];
ul Hsh(int opt,int l,int r){return hsh[opt][r]-hsh[opt][l-]*pw[r-l+];}
ul Ihsh(int opt,int r,int l){return ihsh[opt][l]-ihsh[opt][r+]*pw[r-l+];}
ul Shsh(int l,int r){return shsh[r]-shsh[l-]*pw[r-l+];}
int main(){
freopen("snake.in","r",stdin);freopen("snake.out","w",stdout);
scanf("%s%s%s",s[]+,s[]+,S+);
while(s[][n+])n++;while(S[l+])l++;bg:
if(l==){for(int i=;i<;++i)for(int j=;j<=n;++j)if(s[i][j]==S[])ans++;cout<<ans<<endl;return ;}
if(l==){
for(int i=;i<;++i)for(int j=;j<n;++j)if(s[i][j]==S[]&&s[i][j+]==S[])ans++;
for(int j=;j<=n;++j)if(s[][j]==S[]&&s[][j]==S[])ans++;
for(int i=;i<;++i)for(int j=;j<=n;++j)if(s[i][j]==S[]&&s[i][j-]==S[])ans++;
for(int j=;j<=n;++j)if(s[][j]==S[]&&s[][j]==S[])ans++;
cout<<ans<<endl;return ;
}
for(int i=;i<;++i)for(int j=;j<=n;++j)hsh[i][j]=hsh[i][j-]*+s[i][j]-'a';
for(int i=;i<;++i)for(int j=n;j;--j)ihsh[i][j]=ihsh[i][j+]*+s[i][j]-'a';
pw[]=;for(int i=;i<=n;++i)pw[i]=pw[i-]*;
for(int i=;i<=l;++i)shsh[i]=shsh[i-]*+S[i]-'a';
for(int i=;i<=n;++i)for(int j=;j<=i&&j<<<=l;++j)for(int k=;k<;++k)
if(Hsh(k,i-j+,i)==Shsh(j+,j<<)&&Ihsh(k^,i,i-j+)==Shsh(,j))
dp[k][i+][j<<|]+=s[k][i+]==S[j<<|],ans+=(j<<==l)*ok;
for(int i=;i<=n+;++i)for(int j=;j<<<=l&&i+j-<=n;++j)for(int k=;k<;++k)
if(Hsh(k,i,i+j-)==Shsh(l-j-j+,l-j)&&Ihsh(k^,i+j-,i)==Shsh(l-j+,l))
DP[k][i][l-j-j+]+=(s[k][i]==S[l-j-j+]||j==),ans+=((j<<)==l)*ok;
for(int k=;k<;++k)for(int i=;i<=n+;++i)dp[k][i][]=DP[k][i][l-]=;
for(int i=;i<n;++i)for(int j=;j<l;++j)for(int k=;k<;++k)ans+=dp[k][i][j]*DP[k][i][j];
for(int k=;k<;++k)for(int i=;i<=n;++i)if(s[k][i]==S[])dp[k][i][]=;
for(int i=;i<=n;++i){
for(int j=l;j>;--j)for(int k=;k<;++k)if(i&&s[k][i]==S[j])dp[k][i][j]=(dp[k][i][j]+dp[k][i-][j-])%mod;
for(int j=l;j>;--j)for(int k=;k<;++k)if(i&&s[k][i]==S[j])dp[k][i][j]=(dp[k][i][j]+dp[k^][i][j-])%mod;
for(int j=l;~j;--j)for(int k=;k<;++k)ans=(ans+1ll*dp[k][i][j]*DP[k][i+][j+])%mod;
}
// for(int k=0;k<=1+l;++k,puts(""))for(int i=0;i<2;++i,puts(""))for(int j=1;j<=n+1;++j)printf("%d/%d ",dp[i][j][k],DP[i][j][k]);
if(ok){reverse(S+,S+l+);memset(dp,,sizeof dp);memset(DP,,sizeof DP);ok=;goto bg;}
cout<<ans<<endl;
}

T3:题目

废题。

[考试反思]1110csp-s模拟测试108:消遣的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  3. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  4. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  5. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  6. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  7. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  8. [考试反思]0816NOIP模拟测试23

    210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...

  9. [考试反思]0801NOIP模拟测试11

    8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...

随机推荐

  1. 使用aop切面编写日志模块

    我们先自定义一个注解(一个有关自定义注解的LJ文章 https://www.cnblogs.com/guomie/p/10824973.html) /** * * 自定义日志注解 * Retentio ...

  2. spring源码学习之设计模式(1)单例模式

    众所周知,单例模式分为饿汉式和懒汉式,昨天在看了<spring5核心原理与30个类手写实战>之后才知道饿汉式有很多种写法,分别适用于不同场景,避免反射,线程不安全问题.下面就各种场景.采用 ...

  3. 每周一练 之 数据结构与算法(Stack)

    最近公司内部在开始做前端技术的技术分享,每周一个主题的 每周一练,以基础知识为主,感觉挺棒的,跟着团队的大佬们学习和复习一些知识,新人也可以多学习一些知识,也把团队内部学习氛围营造起来. 我接下来会开 ...

  4. 【Java Web开发学习】Spring构造器和属性注入

    测试类 public class Construct { private String address; private long phone; public Construct(String nam ...

  5. 【ES6】函数的扩展

    1.函数参数默认值[详情例子参照ESMAScript 6入门 (阮一峰)] 允许为函数的参数设置默认值,即直接写在参数定义的后面.[例子1] 参数变量是默认声明的,所以不能用let或const再次声明 ...

  6. JS---BOM基本知识 (顶级对象,系统对话框,加载事件,location对象, history对象, navigator对象)

    BOM JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM ...

  7. iOS开发之微信第三方登录

    参考链接:https://blog.csdn.net/lichuandev/article/details/79878730 参考链接:https://www.jianshu.com/p/59e2ac ...

  8. harbor部署之SSL

    harbor部署之SSL 1 签名证书与自签名证书 签名证书:由权威颁发机构颁发给服务器或者个人用于证明自己身份的东西. 自签名证书:由服务器自己颁发给自己,用于证明自己身份的东西,非权威颁发机构发布 ...

  9. Cross-Site Scripting:Persistent 跨站点脚本:持久性

  10. aop的应用和简单原理

    实现过程: 1.pom引包 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...