[考试反思]1110csp-s模拟测试108:消遣

是套废题。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:消遣的更多相关文章
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- [考试反思]0814NOIP模拟测试21
前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]0909csp-s模拟测试41:反典
说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- [考试反思]0714/0716,NOIP模拟测试3/4
这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
- [考试反思]0816NOIP模拟测试23
210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...
- [考试反思]0801NOIP模拟测试11
8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...
随机推荐
- 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口
CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...
- FPGA_VIP_V101 摄像头视频采集 调试总结之SDRAM引起的水平条纹噪声问题
FPGA_VIP_V101 摄像头视频采集 调试总结之SDRAM引起的水平条纹噪声问题 此问题困扰我很近,终于在最近的项目调整中总结了规律并解决了. 因为之前对sdram并不熟悉,用得也不是太多,于是 ...
- firefox浏览器写xpath
最近在学xpath发现Firefox浏览器不支持xpath定位页面元素 百度为例: F12 页面前端代码 输入最简单的xpath发现并不能定位元素 解决方案:添加 Try Xpath 这个插件,因为 ...
- python学习-文件创建读取
# 文件创建 # 读写# 文件存在?不存在?在操作系统上# 读 read r 写 write w# 打开一个文件# fs = open("xiaojian.txt",encodin ...
- python学习-list
# 数据类型之 列表 有顺序.# 关键字:list# 语法 :[] 数据之间用,隔开.列表当中的数据,可以是任意类型.数值是可以重复的.a = []b = ["魔王", " ...
- tinymce插件preview改造增加全屏按钮
近期需要用到tinymce的preview插件,但preview出来的界面太小了,通过投影仪出来看的不清晰,于是想在preview的预览界面中增加全屏.放大和缩小的按钮,改造内容如下: 由于previ ...
- Maven pom.xml 全配置(一)常用配置
Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...
- EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】
之前也是经常遇到这个问题,但好在每次创建的实体不多,很容易就能找到是哪个外键导致级联循环删除问题 之前都是这么处理,因为创建的实体也不多,所以还处理得来 但最近跟别人合作写后端,别人写了好多实体,我一 ...
- JPA中实现双向一对一的关联关系
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- Android BSearchEdit 搜索结果选择框
EditText搜索结果下拉框.自动or回调模式.可diy.使用超简便 (EditText search results drop-down box, auto or callback mode, d ...