文章目录

  • 前言
  • 总结
    • T1
      • Description
      • 题解
    • 代码
    • T2
      • Description
      • 题解
    • T3
      • Description
      • 题解
      • 代码
    • T4
      • Description
      • 题解
      • 代码

前言

这是一个正规总结,四道题都有详细题解。
先记录一下成长历程,额…比较短:

  1. 2020 CSP-J 一等奖
  2. 2020 CSP-S 一等奖
  3. 2020 NOIP 二等奖资格(主要是初中没有评奖资格)

好了没了,一连串的比赛结束,又要开始日常的训(bi)练(sai)生活。

总结

这次比赛去纪中,刚刚看完题目,我就被XC摸头,额…是被叫去给五年级新生监考的,于是我没有比赛。

T1

Description

题解

水题,左括号配对右括号,栈模拟

代码

#include<bits/stdc++.h>
#define rg register
#define Fu(i,a,b) for(rg int i=(a);i<=(b);i++)
#define Fd(i,a,b) for(rg int i=(a);i>=(b);i--)
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
using namespace std;
char a[32005];
int t[32005],bt,bf,js;
int size,num,n;
int main(){fre(form);while(scanf("%s",a)==1){size=0,num++,n=0,js=0;while(a[n]=='T'||a[n]=='F'||a[n]=='('||a[n]==')'){if(a[n]==')'){bt=bf=0;while(size>0&&t[size]>=0){if(t[size]==1) bt=1;else bf=1;size--;}if(t[size]==-1){if(bf==1)t[size]=0;else t[size]=1;}else{if(bt==1) t[size]=1;else t[size]=0;}js--;}else{if(a[n]=='('){js=js+1;if(js%2==1){t[++size]=-1;}else t[++size]=-2;}else if(a[n]=='T')t[++size]=1;else if(a[n]=='F')t[++size]=0;}n++;}if(t[size]==1) printf("%d. true\n",num);else printf("%d. false\n",num);}return 0;
}

T2

Description

题解

好像是并查集,还没改出来。

T3

Description

小Z是一个爱好数学的小学生。最近,他在研究一些关于整数数列的性质。
为了方便他的研究,小Z希望实现一个叫做“Open Continuous Lines Processor”的数列编辑器。
一开始,数列编辑器里没有数字,只有一个光标。这个数列编辑器需要支持五种操作。
• I x 在当前光标前插入数字 x。
• D 删除当前光标前的数字。
• L 光标向前移动一个数字。
• R 光标向后移动一个数字。
• Q k 设光标之前的数列是{a1,a2,……,an},输出第k位及之前最大的前缀和,保证k≤n

题解

随意,两个栈模拟就好

代码

#include<bits/stdc++.h>
#define rg register
#define Fu(i,a,b) for(rg int i=(a);i<=(b);i++)
#define Fd(i,a,b) for(rg int i=(a);i>=(b);i--)
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
using namespace std;
int n,l[1000005],r[1000005];
int qzh[1000005],maxn[1000005];
int main(){fre(editor);scanf("%d",&n);Fu(i,0,n)maxn[i]=-0x7fffffff;Fu(i,1,n){char f=' ',a;while(f!='I'&&f!='D'&&f!='L'&&f!='R'&&f!='Q') f=getchar();if(f=='I'){int x;scanf("%d",&x);l[++l[0]]=x;qzh[l[0]]=qzh[l[0]-1]+x;maxn[l[0]]=max(maxn[l[0]-1],qzh[l[0]]);}else if(f=='D'){qzh[l[0]]=maxn[l[0]]=0;l[0]--;}else if(f=='L'){if(l[0]>0){qzh[l[0]]=maxn[l[0]]=0;r[++r[0]]=l[l[0]],l[0]--;}}else if(f=='R'){if(r[0]>0){l[++l[0]]=r[r[0]],r[0]--;qzh[l[0]]=qzh[l[0]-1]+r[r[0]+1];maxn[l[0]]=max(maxn[l[0]-1],qzh[l[0]]);}}else if(f=='Q'){int k;scanf("%d",&k);printf("%d\n",maxn[k]);}}return 0;
}

T4

Description

「寻找希望…为了找出希望…

那才是真正的希望…

只要拥有这样的希望,

不管陷入怎样的困境,我们都能继续前行…」

“这是 发生在互相残杀的学园生活之前的故事 。也或许根本就是某个平行世界的故事。

“黑幕站在大门口,静静地审视着希望之峰学园 。旁边站着的是一只 长得像玩偶的熊, 身体一半是黑色一半是白。 不知道是否对接下来将要引起的绝望而感到兴奋,黑幕的嘴角不易察觉地微微上扬。 而身旁 的黑白熊则 ‘唔噗噗噗 ’地意味不明地笑着。

“为了 计划的顺利实施,黑幕需要在学园内装上能监视到所有地方的摄像头。 学园 里一共 有n个房间,有一些房间通过走廊相连。出于特殊的原因,学园只修建了保证所有房间都能互相到达的前提下的最少的走廊。一个房间里的摄像头可以监视到这个房间以及这个房间直接通过走廊相连的所有房间。

“配置摄像头也不是一件简单的事情,所以黑幕决定安装尽量少摄像头。 同时黑幕也想到了一个超高校级的问题: 在安装最少的摄像头前提下,一共有多少种安装的方案? 两个方案不同当且仅存在一个房间在种方案中安装了摄像头,而在另一种方案中没有安装。

“答案 我已经计算出来了哦,你能吗? ”Alter Ego对着屏幕前的人,微笑着说道。

Input
输入 第一行含有一个整数n,代表学园里房间的数量。

接下来n−1行,每行描述一条走廊。每行含有 两个数,代表这条走廊连接的两个房间。

Output
输出 一共两行 。

第一行输出 一个整数,代表需要安装的最少摄像头的数目。

第二行输出一个整数,代表安装的方案数。由于答案可能很大,故输出答案对1,000,000,007取模的结果。

Sample Input
7

2 1

3 1

题解

T4:轮舞前夕
40(树形DP)+12(暴力)=52(有手就行)

代码

#include<bits/stdc++.h>
#define rg register
#define Fu(i,a,b) for(rg int i=(a);i<=(b);i++)
#define Fd(i,a,b) for(rg int i=(a);i>=(b);i--)
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout)
using namespace std;
int f[100005][3],n;
vector <int>a[100005];
void dp(int o,int from){f[o][0]=0x7fffffff,f[o][1]=1,f[o][2]=0;int bj=0;Fu(i,0,a[o].size()-1){if(a[o][i]!=from){dp(a[o][i],o);f[o][1]+=min(f[a[o][i]][0],min(f[a[o][i]][1],f[a[o][i]][2]));f[o][2]+=min(f[a[o][i]][0],f[a[o][i]][1]);if(f[a[o][i]][1]<=f[a[o][i]][0]) bj=1;}}if(bj==1) f[o][0]=f[o][2];else{Fu(i,0,a[o].size()-1){if(a[o][i]!=from){f[o][0]=min(f[o][0],f[o][2]+f[a[o][i]][1]-f[a[o][i]][0]);}}}
}
int main(){scanf("%d",&n);Fu(i,2,n){int u,v;scanf("%d%d",&u,&v);a[u].push_back(v);a[v].push_back(u); }dp(1,0);printf("%d\n0",min(f[1][0],f[1][1]));return 0;
}

2020.12.19【NOIP提高B组】模拟 总结相关推荐

  1. JZOJ 5814. 【NOIP提高A组模拟2018.8.14】 树

    梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地选择一条走过去, ...

  2. 5814. 【NOIP提高A组模拟2018.8.14】 树(期望 + 倍增)

    5814. [NOIP提高A组模拟2018.8.14] 树 Problem 给定一棵nnn个点的树,m" role="presentation">mmm次询问,每次 ...

  3. 5817. 【NOIP提高A组模拟2018.8.15】 抄代码

    Description J 君是机房的红太阳,每次模拟她总是 AK 虐场.然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 J 君 ...

  4. JZOJ 5820. 【NOIP提高A组模拟2018.8.16】 非法输入

    Description 在算法竞赛中,题目一般保证了输入数据的合法性.然而在工程开发中,我们往往不期望程 序得到的输入都是合法的. D 君正忙着向校内 OJ 添加题目,在写了第 233 个 val.c ...

  5. 5778. 【NOIP提高A组模拟2018.8.8】没有硝烟的战争

    Description 被污染的灰灰草原上有羊和狼.有N只动物围成一圈,每只动物是羊或狼. 该游戏从其中的一只动物开始,报出[1,K]区间的整数,若上一只动物报出的数是x,下一只动物可以报[x+1,x ...

  6. 5819. 【NOIP提高A组模拟2018.8.15】 大逃杀

    Description 自从 Y 君退役之后,她就迷上了吃鸡,于是她决定出一道吃鸡的题. Y 君将地图上的所有地点标号为 1 到 n,地图中有 n − 1 条双向道路连接这些点,通过一条 双向道路需要 ...

  7. 2015.12.19初二、三提高组模拟赛 总结

    最近埋在题海里,没怎么写blog,来写一篇吧. 这次比赛共3题,3小时40分钟.时间还是蛮够的,可是还是没有利用好. 比赛回顾 8:00 这次的题好像有点水诶. 题目描述 P1 团队背包 DaA 和他 ...

  8. 5814. 【NOIP提高A组模拟2018.8.14】 树

    题目描述 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地 选择 ...

  9. jzoj 5814. 【NOIP提高A组模拟2018.8.14】树 dp+lca

    Description 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中 ...

  10. 【NOIP提高A组模拟】艾比所特

    Description 阿良良木历将要迎来人生(不,是吸血鬼生涯)的第二次战斗--与身为人类和吸血鬼混血儿的艾比所特在直江津高中的操场solo,以取回Heartunderblade的左脚. 艾比所特个 ...

最新文章

  1. InnoDB调优-索引优化策略
  2. 建模算法(四)——动态规划
  3. 绕月飞行维生系统进展如何?美国人准备好了吗
  4. 牛客多校7 - Pointer Analysis(模拟)
  5. Dapr闪电说 - Dapr落地云原生架构
  6. android的读取xml配置文件,android中XMl文件的读取
  7. Mac如何设置允许和iCloud之间使用接力功能?
  8. python如何安装pipwindows_如何在Windows上使用python 2.6安装pip
  9. 80x86是不是低级语言_【单选题】2、 以下程序设计语言是低级语言的是()。 A. FORTRAN语言 B. JAVA语言 C. Visual Basic 语言 D. 80X86汇编语言...
  10. 15天高斯滤波matlab,【3.15】matlab 高斯滤波,快速滤波
  11. 多媒体计算机辅助英语教学,多媒体计算机辅助英语教学初探
  12. hosts文件在哪里,怎样配置修改hosts文件
  13. python导入math模块_Python math模块详解
  14. MySQL 中 delete where in 语句的子查询限制
  15. Vue 获取最近一个月,前三个月, 最近半年,最近一年, 当前月末日期
  16. 黑苹果虚拟机好用吗_苹果手机上有什么好用的工作提醒便签软件工具吗?
  17. Android 与其他基于 Linux 的系统有何不同?
  18. 华为手撕代码c语言题目,想去面试?这10道最高频的手撕代码题都会了吗?
  19. 电梯控制算法(2)单电梯场景——优化扫描算法
  20. maven仓库报错 MavenResportException: Error while generating Javadoc:

热门文章

  1. 计算机的分类,按设计目的,按大小划分
  2. Java基础题——15只狮子围成一圈,依次报数,报到7被剔除,最后剩下的狮子成为狮王,求狮王为第几只?
  3. ifconfig查看本机IP
  4. 回想当年 91d2 1588 神戒
  5. 推荐一个文件内容/文件夹的比对软件-WinMerge,附简单用法
  6. 数据库实验二--学生选课数据库(OpenGuess)
  7. 最新CentOS7安装PHP7
  8. DATEDIFF 函数
  9. Wifi study 记录
  10. MTK6737N平台做反复重启开关机测试卡在开机动画界面不开机