题目涉及算法:

  • 数字反转:模拟;
  • 统计单词数:模拟;
  • 瑞士轮:模拟/排序;
  • 表达式的值:后缀表达式/DP。

数字反转

题目链接:https://www.luogu.org/problem/P1307

这道题目是一道基础的模拟题,只需要模拟将数字进行翻转就可以了,注意 \(0\) 和 负数。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
void solve(int num) {
if (num < 0) { putchar('-'); num = -num; }
if (num == 0) { cout << 0 << endl; return; }
int t = 0;
while (num > 0) {
t = t * 10 + num % 10;
num /= 10;
}
cout << t << endl;
}
int n;
int main() {
cin >> n;
solve(n);
return 0;
}

统计单词数

题目链接:https://www.luogu.org/problem/P1308

这道题目就是一道简单的字符串匹配问题。

关于字符串匹配问题有一些经典的算法(比如KMP等),但是我们这道题目数据量比驾小所以直接暴力比较就可以了。

需要注意的是字符串的读入( char 数组使用 getsstring 使用 cin.getline

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
char s[12], t[1000010];
int n, m, cnt, idx;
int main() {
gets(s); gets(t);
for (n = 0; s[n]; n ++) s[n] = tolower(s[n]);
for (m = 0; t[m]; m ++) t[m] = tolower(t[m]);
for (int i = 0; i+n-1 < m; i ++) {
if ((i+n == m || t[i+n] == ' ') && (i == 0 || t[i-1] == ' ')) {
bool flag = true;
for (int j = 0; j < n; j ++) if (s[j] != t[i+j]) {
flag = false;
break;
}
if (flag) {
cnt ++;
if (cnt == 1) idx = i;
}
}
}
if (cnt) printf("%d %d\n", cnt, idx);
else puts("-1");
return 0;
}

瑞士轮

题目链接:https://www.luogu.org/problem/P1309

这道题目就是按照题目描述来模拟一下就可以了。

首先我们先设计我们的比较函数:分数从高到低排,分数相同时按编号从小到大排。

然后呢,循环R轮。

在最开始需要使用比较函数对这 2n 个人进行一下排序。

然后接下来(R轮里面的)每一轮,我都比较相邻的两个元素,然后实力高一点的那个加一分;然后再按照比较函数拍一下序。

实现代码如下(开了O2优化):

#include <bits/stdc++.h>
using namespace std;
const int maxn = 200200;
int n, R, Q;
struct Node {
int id, s, w;
} a[maxn];
bool cmp(Node a, Node b) { return a.s > b.s || a.s == b.s && a.id < b.id; }
int main() {
scanf("%d%d%d", &n, &R, &Q);
n *= 2;
for (int i = 0; i < n; i ++) a[i].id = i+1;
for (int i = 0; i < n; i ++) scanf("%d", &a[i].s);
for (int i = 0; i < n; i ++) scanf("%d", &a[i].w);
sort(a, a+n, cmp);
while (R --) {
for (int i = 0; i < n; i += 2) {
if (a[i].w > a[i+1].w) a[i].s ++;
else a[i+1].s ++;
}
sort(a, a+n, cmp);
}
printf("%d\n", a[Q-1].id);
return 0;
}

表达式的值

题目链接:https://www.luogu.org/problem/P1310

本题涉及算法:前缀表达式转后缀表达式,计算结果的时候有用到递归思想。

题解地址:https://www.cnblogs.com/codedecision/p/11746099.html

作者:zifeiy

2011年NOIP普及组复赛题解的更多相关文章

  1. 2010年NOIP普及组复赛题解

    题目及涉及的算法: 数字统计:入门题: 接水问题:基础模拟题: 导弹拦截:动态规划.贪心: 三国游戏:贪心.博弈论. 数字统计 题目链接:洛谷 P1179 这道题目是一道基础题. 我们只需要开一个变量 ...

  2. 2017年NOIP普及组复赛题解

    题目涉及算法: 成绩:入门题: 图书管理员:模拟: 棋盘:最短路/广搜: 跳房子:RMQ/二分答案/DP(本人解法). 成绩 题目链接:https://www.luogu.org/problemnew ...

  3. 2016年NOIP普及组复赛题解

    题目涉及算法: 买铅笔:入门题: 回文日期:枚举: 海港:双指针: 魔法阵:数学推理. 买铅笔 题目链接:https://www.luogu.org/problem/P1909 设至少要买 \(num ...

  4. 2014年NOIP普及组复赛题解

    题目涉及算法: 珠心算测验:枚举: 比例简化:枚举: 螺旋矩阵:模拟: 子矩阵:状态压缩/枚举/动态规划 珠心算测验 题目链接:https://www.luogu.org/problem/P2141 ...

  5. 2013年NOIP普及组复赛题解

    题目涉及算法: 计数问题:枚举: 表达式求值:栈: 小朋友的数字:动态规划: 车站分级:最长路. 计数问题 题目链接:https://www.luogu.org/problem/P1980 因为数据量 ...

  6. 2008年NOIP普及组复赛题解

    题目涉及算法: ISBN号码:简单字符串模拟: 排座椅:贪心: 传球游戏:动态规划: 立体图:模拟. ISBN号码 题目链接:https://www.luogu.org/problem/P1055 简 ...

  7. 2005年NOIP普及组复赛题解

    题目涉及算法: 陶陶摘苹果:入门题: 校门外的树:简单模拟: 采药:01背包: 循环:模拟.高精度. 陶陶摘苹果 题目链接:https://www.luogu.org/problem/P1046 循环 ...

  8. 2018年NOIP普及组复赛题解

    题目涉及算法: 标题统计:字符串入门题: 龙虎斗:数学题: 摆渡车:动态规划: 对称二叉树:搜索. 标题统计 题目链接:https://www.luogu.org/problem/P5015 这道题目 ...

  9. 2015年NOIP普及组复赛题解

    题目涉及算法: 金币:入门题: 扫雷游戏:入门题: 求和:简单数学推导: 推销员:贪心. 金币 题目链接:https://www.luogu.org/problem/P2669 入门题,直接开一个循环 ...

随机推荐

  1. HR招聘_(八)_招聘方法论(面试环节·问题设计)

    基本情况: 您目前是在职还是离职?最快的到岗时间是? 目前的薪资情况如何,期望薪资是? 您是哪里人,单身吗? 动机判断: 您看机会主要考虑哪些因素? 最重要的是什么? 未来两三年的职业规划是? 您住在 ...

  2. tes..

    力扣刷题 二分查找法 二分查找法又称折半查找法. 优点:比较次数少,查找速度快,平均性能好: 缺点:要求待查表为有序表,且插入删除困难. 因此,折半查找方法适用于不经常变动而查找频繁的有序列表. 首先 ...

  3. day38 19-Spring整合web开发

    整合Spring开发环境只需要引入spring-web-3.2.0.RELEASE.jar这个jar包就可以了,因为它已经帮我们做好了. Spring整合web开发,不用每次都加载Spring环境了. ...

  4. js图片压缩和上传并显示

    由于近期项目中需要做个图片压缩上传,所以就在网上找了些资料自己写了一个 html部分 <input id="file" type="file"> & ...

  5. Qt添加右键菜单

    QAction *hideAction = new QAction(tr(" 隐藏"),this); addAction(hideAction); setContextMenuPo ...

  6. BigDecimal创建初始化值类型对比

    当初始化String类型和double类型,入参值相同,对比输出值 BigDecimal bigDecimalStr = new BigDecimal("0.1"); BigDec ...

  7. Directx11教程(50) 输出depth/stencil buffer的内容

    原文:Directx11教程(50) 输出depth/stencil buffer的内容      有时候,我们需要查看depth/stencil buffer的内容,比如上一章中,我们要查看sten ...

  8. ios开发使用Basic Auth 认证方式

    http://blog.csdn.net/joonchen111/article/details/48447813 我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth ...

  9. @划水记@ THUWC2020 (?)

    目录 @day -1@ @day 0@ @day 1@ @day 2@ @day 2+@ @day 3@ @day ?@ @day -1@ 听闻 THUWC 在 12 月举行的消息,突然就停了大概一周 ...

  10. day19 django继续

    上节回顾 django - 路由系统:url.py - 视图函数:views.py - 模板引擎渲染 - HttpResonse(字符串) - render(request,'index.html') ...