题目涉及算法:

  • 数字反转:模拟;
  • 统计单词数:模拟;
  • 瑞士轮:模拟/排序;
  • 表达式的值:后缀表达式/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. python实现六大分群质量评估指标(兰德系数、互信息、轮廓系数)

    python实现六大分群质量评估指标(兰德系数.互信息.轮廓系数) 1 R语言中的分群质量--轮廓系数 因为先前惯用R语言,那么来看看R语言中的分群质量评估,节选自笔记︱多种常见聚类模型以及分群质量评 ...

  2. 【水滴石穿】react-native-aze

    说个题外话,早上打开电脑的时候,电脑变成彩色的了,锅是我曾经安装的一个chrome扩展,没有经过我的同意开启了 (也许是昨天迷迷糊糊开启了) 上午运行项目都不成功,还以为被黑客攻击了---然后下午就排 ...

  3. SQL SERVER 2008 R2 插入数据非常慢

    表是5字段int类型,第一个字段是主健,自增字段 表结构: id int  Uncheckedbillno bigint  Uncheckedopid int  Checkedbillopid int ...

  4. IE8下的兼容小经验

    placeholder IE8下不支持HTML5属性placeholder,不过为解决此问题的js插件挺多的,比如:jquery-placeholder.也可以使用jquery来写. last-chi ...

  5. 解决Apache日志"internal dummy connection"方法

    最近查看服务器中apache日志,发现有大量的 OPTIONS * HTTP/1.0" 200 - "-" "Apache (internal dummy co ...

  6. Python之整数类型

    整数:18,73,84 每一个整数都有如下的功能:class int(object): """ int(x=0) -> int or long int(x, bas ...

  7. win10下Anaconda3配置环境变量

    有时候在win10安装好Anaconda3后,使用conda命令时依然会出现: C:\Users\dell\PycharmProjects\pytorch>conda list 'conda' ...

  8. 安装 FastAdmin 时忘记 MySQL 密码怎么办?

    安装 FastAdmin 时忘记 MySQL 密码怎么办? 给 MySQL 启动时加上 skip-grant-tables 参数,然后随便使用用户名都可以进入 MySQL. 接着就可以使用 命令改了 ...

  9. Java转iOS-第一个项目总结(2):遇到问题和解决方案

    目录1.UITableView滑动卡顿的优化 2.右滑手势返回 3.添加页面统计 4.debug版和release版 5.关于页面刷新 6.关于页面布局 7.推荐博客 遇到问题和解决方案 本文是Jav ...

  10. 2019-9-2-win10-uwp-随着数字变化颜色控件

    title author date CreateTime categories win10 uwp 随着数字变化颜色控件 lindexi 2019-09-02 12:57:38 +0800 2018- ...