NOIP 2018 普及组 解题报告
先来解释一下为毛现在才来发解题报告:
其实博主是参加过NOIP 2018普及组的复赛的,不过当时成绩垃圾的一批。只混到一个三等奖......
今天老师又给考了一遍noip2018普及的题,结果第三题还是不太会,卧槽.....这.....不过我竟然用暴力dfs+剪枝过了(只是在网上luogu过了,本地TLE下面会说到的,咕咕咕)
下面是正式的解题报告:
标题统计
题目链接
思路
没什么好说的,不会请右上角
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
#include<cstring>
using namespace std;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
char s;
int ans;
int main()
{
while(cin>>s)
{
if(s!='\n'&&s!=' ')
{
ans++;
}
}
cout<<ans;
return 0;
}
龙虎斗
题目链接:
思路
就是直接模拟,枚举你支援的兵放到的兵营,然后找到气势差最小的就行了,注意开long long可恶的CCF竟然卡我们long long
一定要开long long !
一定要开long long !
一定要开long long !
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
long long int l=0,h=0,m,p1,s1,s2,n,chushi[100000],ans,p2,pam,ltag,htag,tag;
long long int chazhi=0;
int main()
{
scanf("%lld",&n);
for(int i=1;i<=n;++i)
{
cin>>chushi[i];
}
cin>>m>>p1>>s1>>s2;
if(p1!=m)
chushi[p1]=chushi[p1]+s1;
for(int i=1;i<m;++i)
{
l=l+chushi[i]*(m-i);
}
for(int i=m+1;i<=n;++i)
{
h=h+chushi[i]*(i-m);
}
chazhi=abs(l-h);
tag=chazhi;
ltag=l;
htag=h;
pam=-9876;
ans=chazhi;
for(int i=1;i<=n;++i)
{
if(i<m)
{
l=l+s2*(m-i);
chazhi=abs(l-h);
if(chazhi<ans)
{
p2=i;
ans=chazhi;
tag=chazhi;
pam=ans;
l=ltag;
}
else
{
chazhi=tag;
l=ltag;
}
}
if(i>m)
{
h=h+s2*(i-m);
chazhi=abs(l-h);
if(ans>chazhi)
{
p2=i;
ans=chazhi;
tag=chazhi;
h=htag;
pam=ans;
}
else
{
chazhi=tag;
h=htag;
}
}
}
if(pam==-9876)
cout<<m;
else
cout<<p2;
return 0;
}
摆渡车
题目链接:
思路
4个题里最难的一个了,不过时限也给了良心的2s(注意这里)
对称二叉树
题目链接
思路:
乍一看很难,其实仔细一想并不难
所谓对称二叉树就是把树从根节点划一条线两边对折后完全相同(注意无论结构还是数值都相同)
我们可以用递归的方式来遍历左右子树
那么就可以来搞一下不对称的情况了
第一种是结构不对称:
就是只出现了一个-1没有同时递归到-1
第二种是数值上不对称:
只需判断左子树的左孩纸和右子树的右孩子已经左孩纸和右子树的左孩子和左子树的右孩子是不是数值相同就行了
最后统计节点数维护一个max就行了
NOIP 2018 普及组 解题报告的更多相关文章
- NOIP2017普及组解题报告
刚参加完NOIP2017普及,只考了210,于是心生不爽,写下了这篇解题报告...(逃 第一次写博,望dalao们多多指导啊(膜 第一题score,学完helloworld的人也应该都会吧,之前好多人 ...
- NOIP2016普及组解题报告
概述 \(NOIP2016\)普及组的前三题都比较简单,第四题也有很多的暴力分,相信参加了的各位\(OIer\)在\(2016\)年都取得了很好的成绩. 那么,我将会分析\(NOIP2016\)普及组 ...
- NOIP2015&2016普及组解题报告
NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...
- NOIp 2018 普及组
T1标题统计 传送门 题目描述 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字 符数时,空格和换行符不计算在内. ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- NOIP 2018 提高组初赛解题报告
单项选择题: D 进制转换题,送分: D 计算机常识题,Python是解释运行的: B 常识题,1984年小平爷爷曰:“娃娃抓起”: A 数据结构常识题,带进去两个数据就可以选出来: D 历年真题没有 ...
- NOIp 2018 普及&提高组试题答案
你们考的咋样呢?在评论区说出自己的分数吧!
随机推荐
- 「UR#5」怎样跑得更快
「UR#5」怎样跑得更快 膜这个您就会了 下面是复读机mangoyang 我们要求 \[ \sum_{j=1}^n \gcd(i,j)^{c-d} j^d x_j=\frac{b_i}{i^d} \] ...
- ODBC数据导入
这个方法其实是导入excel 首先进入pl/sql dev (1):tools-->ODBC importer (2):点击connect,选择需要导入的excel (3):如果事先数据库中没有 ...
- 【1】【leetcode-72 动态规划】 编辑距离
(没思路,很典型,重要) 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替 ...
- flask与Flask-CORS的使用
flask与Flask-CORS的使用 一.安装 pip install flask-cors 二.使用 # 文件:manage.py from flask_cors import CORS from ...
- Springboot html vue.js 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro 权限
官网:www.fhadmin.org 特别注意: Springboot 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...
- Qt Creator 的下载与安装
一.Qt和Qt Creator的区别 Qt是C++的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率. Qt Creator是一个IDE,就是一个平台,一个开发环境,类似的比如说VS,也可 ...
- vue-cli3使用svg
(根据网上教程实操,仅作个记录) 执行命令安装插件 npm install svg-sprite-loader --save-dev 在vue.config.js中,添加配置 module.expor ...
- RSA算法一:数学原理
- PHP实现微信退款功能
最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径) ②网页提示curl 52 说明你的证书 ...
- MySQL AutoIncrement--自增锁模式
自增锁模式 在MYSQL 5.1.22版本前,自增列使用AUTO_INC Locking方式来实现,即采用一种特殊的表锁机制来保证并发插入下自增操作依然是串行操作,为提高插入效率,该锁会在插入语句完成 ...