[考试反思]0920csp-s模拟测试48:弱小
注:T1全场46个人里42个AC了。
%%%zkt也AK了呢越来越强啊
我是真的越来越弱了吗?
我到底在干什么。。。
在难度递增的题里分数递增。。。
考试过程大体还好,但是如此快速地WA掉T1也真是蠢得不行了。
T2没想到bitset,对1500这种数据范围还是不敏感。
T3想出来还是挺快的,注意观察数据范围就万事大吉。(二进制相关的题我的得分平时都不太低,是撞大运了?)
然后给T2和T3都上了个对拍,T3出锅了剩30分幸亏改过来了。
然而感觉T1实在太傻逼了暴力和正解是一个复杂度的就没打,手模几个样例就结束了。
题目的样例和手模的样例都在字串和子序列下答案相同。。。
但是这次不是看错题了,我也知道是子串,但是打到一半没过脑子就飘移到子序列上了。(因为原来做过一个那个题)
我,傻子,太弱了。
不要轻视最简单的题,你A不掉的!该打对拍还是要对拍。
bitset是出题人很喜欢的一个考点,1500的数据范围可能指向n3/32
T1:String Master
简单dp或硬匹配。
自行找不同?EXP++
#include<cstdio>
#include<iostream>
using namespace std;
char a[],b[];int n,k,dp[][][];
int main(){
scanf("%d%d%s%s",&n,&k,a+,b+);
for(int i=;i<=n;++i)for(int j=;j<=n;++j)for(int l=;l<=k;++l){
if(a[i]==b[j])dp[i][j][l]=max(dp[i][j][l],dp[i-][j-][l]+);
if(l)dp[i][j][l]=max(dp[i][j][l],dp[i-][j-][l-]+);
dp[i][j][l]=max(dp[i][j][l],max(dp[i-][j][l],dp[i][j-][l]));
}printf("%d\n",dp[n][n][k]);
}
10分的子序列版本
#include<cstdio>
#include<iostream>
using namespace std;
char a[],b[];int n,k,dp[][][],ans;
int main(){
scanf("%d%d%s%s",&n,&k,a+,b+);
for(int i=;i<=n;++i)for(int j=;j<=n;++j)for(int l=;l<=k;++l){
if(a[i]==b[j])dp[i][j][l]=max(dp[i][j][l],dp[i-][j-][l]+);
if(l)dp[i][j][l]=max(dp[i][j][l],dp[i-][j-][l-]+);
ans=max(dp[i][j][l],ans);
}printf("%d\n",ans);
}
100分的子串版本
思路积累:
- 细致。
T2:Tourist Attaction
容斥。所有路径-第1,3个点相同的路径-第2,4个点相同的路径+第13和24分别相同的路径-三元环数×6。
#include<cstdio>
int n,d[];long long dp[][],ans;char s[][];
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%s",s[i]+);
for(int i=;i<=n;++i)dp[][i]=;
for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')d[i]++;
for(int t=;t<=;++t)for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')dp[t][i]+=dp[t-][j];
for(int i=;i<=n;++i)ans+=dp[][i];
for(int i=;i<=n;++i)ans-=d[i]*d[i]*;
for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')ans++;
for(int i=;i<=n;++i)for(int j=i+;j<=n;++j)if(s[i][j]=='')
for(int k=j+;k<=n;++k)if(s[i][k]==''&&s[j][k]=='')ans-=;
printf("%lld\n",ans);
}
暴力
#include<cstdio>
#include<bitset>
using namespace std;
bitset<>b[];
int n,d[];long long dp[][],ans;char s[][];
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%s",s[i]+);
for(int i=;i<=n;++i)dp[][i]=;
for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')d[i]++;
for(int t=;t<=;++t)for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')dp[t][i]+=dp[t-][j];
for(int i=;i<=n;++i)ans+=dp[][i];
for(int i=;i<=n;++i)ans-=d[i]*d[i]*;
for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')ans++;
for(int i=;i<=n;++i)for(int j=;j<=n;++j)if(s[i][j]=='')b[i][j]=;
for(int i=;i<=n;++i)for(int j=i+;j<=n;++j)if(b[i][j])ans-=(b[i]&b[j]).count()*;
printf("%lld\n",ans);
}
bitset优化后就是正解
思路积累:
- STL bitset。32这个数字在复杂度里不可忽视!!
T3:Walk
观察数据范围,权值小于220,大约是1048576。既然没有出到230显然复杂度与之有关。
题目里有特殊性质,边权都是1,那么就是一个BFS而不是Dijkstra。(然而并没有卡Dijkstra的log复杂度)
那么每一个点只会被更新一次,那1048576也只会各被更新一次。
存进vector里面用dfs更新即可。
#include<cstdio>
#include<vector>
using namespace std;
vector<int>v[];
int n,val[],dt[],m,fir[],l[],to[],cnt,al[];
int q[],qt;
void link(int a,int b){l[++cnt]=fir[a];fir[a]=cnt;to[cnt]=b;}
inline void read(register int &p,register char ch=getchar()){p=;
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<='')p=(p<<)+(p<<)+ch-,ch=getchar();
}
void update(register const int num,register const int d){
al[num]=;
for(register int i=;i<v[num].size();++i)if(dt[v[num][i]]>d)dt[v[num][i]]=d,q[++qt]=v[num][i];
for(register int j=num;j;j-=j&-j)if(!al[num^(j&-j)])update(num^(j&-j),d);
}
int main(){//freopen("t3.in","r",stdin);freopen("t3.out","w",stdout);
read(n);read(m);
for(int i=;i<=n;++i)read(val[i]),v[val[i]].push_back(i);
for(int i=,x,y;i<=m;++i)read(x),read(y),link(x,y);
for(int i=;i<=n;++i)dt[i]=;
q[qt=]=;
for(int qh=;qh<=qt;++qh){
for(int i=fir[q[qh]];i;i=l[i])if(dt[to[i]]>dt[q[qh]]+)dt[to[i]]=dt[q[qh]]+,q[++qt]=to[i];
if(!al[val[q[qh]]])update(val[q[qh]],dt[q[qh]]+);
}
for(int i=;i<=n;++i)printf("%d\n",dt[i]==?-:dt[i]);
}
思路积累:
- 边权为1的图指向BFS。
- 二进制的子集枚举:去掉其中一位再迭代搜索(有重复,但是在每个点全场只需更新1次时复杂度是对的)
[考试反思]0920csp-s模拟测试48:弱小的更多相关文章
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- [CSP-S模拟测试48]反思+题解
状态很垃圾的一场考试.感觉“这么多分就够了”的心态很是在给自己拖后腿. 打开题面,第一页赫然写着:$Claris' Contest$. 吓得我差点手一抖关掉.不过后来想想似乎强到变态的人出的题都不是很 ...
- 2019.9.20 csp-s模拟测试48 反思总结
头疼,不说废话了,祝大家rp++. T1: 暴力枚举,n3. 枚举两个串开始匹配的位置,每一次尽量修改. #include<iostream> #include<cstdio> ...
- [考试反思]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:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
随机推荐
- java中不创建使用第三方变量,交换两个数的值
1.直接使用算术运算法交换 先把两个数的和赋值给其中一个,然后做减法.例如num1=num1+num2; 此时num2(交换之后)就等于num1减去num2:废话不多说,直接上代码 public cl ...
- Java读源码之Object
前言 JDK版本: 1.8 最近想看看jdk源码提高下技术深度(比较闲),万物皆对象,虽然Object大多native方法但还是很重要的. 源码 package java.lang; /** * Ja ...
- 原生js动态创建文本内容的几种方式
1.通过CreateTextNode文本节点 首先创建该元素(元素节点),然后向一个已存在的元素追加该文本节点 <!DOCTYPE html> <html> <body& ...
- Faker——生成测试数据的PHP类库
工作上用的是TP框架,每次测试功能的时候都要手动添加测试数据,词穷起名总是起一些test1.test2这种low到爆炸的用户名,这让我很难受.稍微翻阅了一些资料,发现laravel有一个生成测试数据的 ...
- Creator3D 守护你的球球—UV动画与天空盒
1 游戏预览 在线体验地址:http://example.creator-star.cn/follo-ball/ 2 场景物体 场景物体 新建场景后,引擎会为我们创建默认的摄像机和灯光,这个我们就不介 ...
- mac专业视频剪辑软件 Final Cut Pro 10.4.6破解版
Final Cut Pro简称FCP,它是 Mac平台上最好的视频剪辑软件,可用来视频剪辑.后期特效等.可编辑从标清到4K的各种分辨率视频,ColorSync管理的色彩流水线则可保证全片色彩的一致性. ...
- Bran的内核开发教程(bkerndev)-06 全局描述符表(GDT)
全局描述符表(GDT) 在386平台各种保护措施中最重要的就是全局描述符表(GDT).GDT为内存的某些部分定义了基本的访问权限.我们可以使用GDT中的一个索引来生成段冲突异常, 让内核终止执行异 ...
- XSS中的同源策略和跨域问题
转自 https://www.cnblogs.com/chaoyuehedy/p/5556557.html 1 同源策略 所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问方式进行的限制.比如源a ...
- 【阿里云IoT+YF3300】6.物联网设备报警配置
纵然5G时代已经在时代的浪潮中展现出了它的身影,但是就目前的物联网环境中,网络问题仍旧是一个比较突出的硬伤.众所周知,在当前的物联网规划中,与其说是实现万物互联,倒不如说是行业指标数据监控.对于一些特 ...
- Vue全局组件注册
通过Vue.component(‘组件名’, {配置对象})注册全局组件 在main.js中注册全局组件 test import Vue from 'vue' import App from './A ...