[CSP冲刺班]CSP-J2021模拟赛#9
!!!爆零警告
得分
凄凄惨惨戚戚
我上来浏览了一遍题目,觉得都挺简单的(事实证明我太年轻了),挑了我认为最简单的第二题开始做,做了半个小时,A掉了。然后做第二题,拿了部分分(无嵌套30分)。第三题写了一个无-1的情况的部分分(不知道为什么只得了5分)。第四题写了一个爆搜,没得分(连爆搜也写不对了)。第一题没找到规律,结束后看题解发现很简单,自闭。
T1
[2021CSP-J]模拟赛#9-T1-蜗牛老师的瓷砖
简单规律题。。。然而我爆零了
code
#include<bits/stdc++.h>
using namespace std;
int a,n,m;int main()
{freopen("brick.in","r",stdin);freopen("brick.out","w",stdout);scanf("%d",&a);for(int i=1;i<=a;i++){int flag=0;cin>>n>>m;if(m%2!=0) {printf("NO\n");flag=1;}for(int j=1;j<=n;j++){int a,b,c,d;cin>>a>>b>>c>>d;if(b==c&&flag==0) {printf("YES\n");flag=1;}}if(flag==0) printf("NO\n");}return 0;
}
T2
[2021CSP-J]模拟赛#9-T2-蜗牛老师的画
这道A了。
其实有点类似于动态规划吧,第nnn只蜗牛画第mmm幅画的时间只与 前一只蜗牛画这幅画 和 这只蜗牛画上一幅画的完成时间 有关
code
#include<bits/stdc++.h>
using namespace std;
const int N=50005;
long long m,n,mp[N][7],ans[N][7];int main()
{freopen("draw.in","r",stdin);freopen("draw.out","w",stdout);scanf("%lld%lld",&m,&n);for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){scanf("%lld",&mp[i][j]);}}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){ans[i][j]=max(ans[i-1][j]+mp[i][j],ans[i][j-1]+mp[i][j]);//非常重要}}for(int i=1;i<=m;i++){printf("%lld ",ans[i][n]);}return 0;
}
T3
传送门
这道题其实就是一个不难的模拟,题目怎么说,你就怎么做。读懂题你就发现,答案就是统计 add 语句 的执行次数
。得到正确答案,如果说关键点的话,可能就是解决循环嵌套时怎么处理 add 语句的统计问 题
。就本题,没有特殊的跳转和括号, 总是跟它前面最近的那个匹配,很容易想到用栈去处理,很方便。具体方法是:每进入一层循环,就将该层循环内语句的执行次数(之前所有for循环执行次数的乘积)压入栈中,遇到一次 add 操作就将答案加上栈顶的值,遇到 end 就弹出栈顶。
特别提醒: 这里要特别注意,在最坏情况下 add 的执行次数,远远超过了long long的表示范围,导致我们无法判断变量的值是否真正溢出。解决这个问题的方法很简单:当压入栈中的值超过了变量最大值(232-1)的时候,我们用 代替真正的执行次数压入栈。最坏情况下,变量的值最大只有 ,在long long的范围之内,这样就可以正确判断变量是否溢出了。
coding…
我暂时还没有做出来。。
张梓烨大佬用递归做的
#include<bits/stdc++.h>
using namespace std;
long long x,sum,ff;
void myfor(long long f) {char c4,c5,c6;cin>>c4>>c5>>c6;sum--;if(c4=='e') {ff--;return;}if(c4=='a') x+=f;if(c4=='f') {ff++;int a;cin>>a;myfor(a*f);}if(ff!=0)myfor(f);
}
int main() {freopen("overflow.in","r",stdin);freopen("overflow.out","w",stdout);cin>>sum;for(int i=1; i<=sum; i++) {char c1,c2,c3;cin>>c1>>c2>>c3;if(c1=='a') x+=1;if(c1=='f') {ff++;int a;cin>>a;myfor(a);}}if(x>4294967296||x<0){cout<<"OVERFLOW!!!";return 0;}cout<<x;return 0;
}
常梓良大佬的做法
用
2
表示for
,用-2
表示end
,用1
表示add
。很巧妙的做法
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
string s;
long long x;
long long val[N];
long long f[N];
long long ans;
long long Maxn=1;
int id_for[N];
int tot;
int k;
int main(){freopen("overflow.in","r",stdin);freopen("overflow.out","w",stdout);for(int i=1;i<=32;i++) Maxn*=2;Maxn--;cin>>n;for(int i=1;i<=n;i++){cin>>s;if(s=="add") f[++tot]=1;if(s=="for"){f[++tot]=2;id_for[++k]=tot;cin>>val[k];}if(s=="end"){f[++tot]=-2;}}
// for(int i=1;i<=tot;i++){// cout<<f[i]<<' ';
// }
// cout<<endl;
// for(int i=k;i>=1;i--){// cout<<val[i]<<' ';
// }
// cout<<endl;
// for(int i=k;i>=1;i--){// cout<<id_for[i]<<' ';
// }
// cout<<endl;for(int i=k;i>=1;i--){int id=id_for[i];long long temp=0;for(int j=id;;j++){temp+=f[j];if(f[j]==-2){f[j]=0;break;}f[j]=0;}temp*=val[i];f[id]=temp;if(f[id]>Maxn){cout<<"OVERFLOW!!!"<<endl;return 0;}}for(int i=1;i<=tot;i++){ans+=f[i];if(ans>Maxn){cout<<"OVERFLOW!!!"<<endl;return 0; }}cout<<ans<<endl;return 0;
}
T4
传送门
贪心,模拟。可以发现对于某一段序列,越长越好。贪心保证每段都是最长就可以了。注意:等差数列的公差可以为0 。这道题思维细节比较多,考查代码实现能力。
coding…
T5
区间DP
感觉跟暑假集训没学一样(白学公主)。考场上写了个dfs大法师,写错了,一分也没得。
大佬学长的博客总结
大佬们的智慧
赛后总结
没啥好说的,只能说OpenEnglish变得更智障了
部分分很重要,一定要好好写
爆搜很重要,一定要会
在考场上遇到 不会的 or 没见过的题 不要慌,集中精神仔细思考
学会寻找规律
最后一点,还是做的题太少了
[CSP冲刺班]CSP-J2021模拟赛#9相关推荐
- 洛谷 P5594 【XR-4】模拟赛 视频讲解(二维数组、模拟)
洛谷 P5594 [XR-4]模拟赛(需要 二维数组) 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 ...
- P5594 【XR-4】模拟赛
题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OIer 都有各自的时间安排,巧合的是,他们在接下来的 ...
- 洛谷:P5594 【XR-4】模拟赛
[XR-4]模拟赛 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nnn 名 OIer 参与这次集训,教练为他们精心准备了 mmm 套模拟赛题. 然而,每名 OIer 都有各自的时间安排, ...
- 洛谷P5594-【XR-4】模拟赛(模拟)
题目描述: X 校正在进行 CSP 前的校内集训. 一共有 nnn 名 OIer 参与这次集训,教练为他们精心准备了 mmm 套模拟赛题. 然而,每名 OIer 都有各自的时间安排,巧合的是,他们在接 ...
- 洛谷P5594-【XR-4】模拟赛
题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OIer 都有各自的时间安排,巧合的是,他们在接下来的 ...
- 用vis数组保证只入队一次P5594 【XR-4】模拟赛
文章目录 [XR-4]模拟赛 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 样例 #3 样例输入 #3 样例输出 #3 提示 小 ...
- 「CSP-S模拟赛」2019第四场
「CSP-S模拟赛」2019第四场 T1 「JOI 2014 Final」JOI 徽章 题目 考场思考(正解) T2 「JOI 2015 Final」分蛋糕 2 题目 考场思考(正解) T3 「CQO ...
- 2020/10/31模拟赛
CSP第二轮前模拟赛 我太菜了 T1 题目描述 奶牛们对围栏的高度非常敏感.奶牛希望围栏高度既不太矮以至于他们没有安全感,也不太高以至于她们看不见围栏外的天地.所以每头奶牛都有自己喜欢的高度.奶牛有N ...
- 长沙学院2022蓝桥杯模拟赛一
长沙学院2022蓝桥杯模拟赛一_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJhttps://ac.nowcoder.com/acm/contest/26010#ques ...
最新文章
- Fiori 出试(WEBIDE平台)day1
- 【Python】利用graphviz和pycallgraph库自动生成Python函数调用关系图
- mysql unix_timestamp 格式化_FROM_UNIXTIME 格式化MYSQL时间戳函数_MySQL
- Linux中的 硬链接ln和软连接ln -s
- requestparam的作用_Spring MVC:请解释@RequestParam和@ModelAttribute之间的区别
- Android使用jxl快速生成Excel表
- Centos 7安装docker实战
- python分片上传_分片上传_分片上传_上传文件_Python_SDK 示例_对象存储 OSS - 阿里云...
- ise生成msk文件的用处_ISE中上载程序出错,msk文件缺失有关问题
- Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心
- python pip 快速安装第三方库和下载好whl文件
- 使用Secure Store Service连接数据库
- 深度deepin安装腾达U12无线网卡驱动
- ERROR ITMS-90096: Your binary is not optimized for iPhone 5 错误
- 青山常在,绿水长流,又一个新地方了
- 漂亮的网络验证php源码,好用的冰心php网络验证和源码例子
- NHibernate(一) 转自止于至善
- “真正的”欧洲杯,鸡冻不鸡冻?
- Matlab 许可证文件过期
- 《CAT NAUGHTY CARP》App Store 隱私政策網址(URL)