题目涉及算法:

  • 珠心算测验:枚举;
  • 比例简化:枚举;
  • 螺旋矩阵:模拟;
  • 子矩阵:状态压缩/枚举/动态规划

珠心算测验

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

因为数据量比较小,直接暴力枚举即可。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
int n, a[maxn], cnt;
bool exists[20020];
int main() {
cin >> n;
for (int i = 0; i < n; i ++) cin >> a[i];
for (int i = 0; i < n; i ++) for (int j = i+1; j < n; j ++) exists[ a[i] + a[j] ] = true;
for (int i = 0; i < n; i ++) cnt += exists[ a[i] ];
cout << cnt << endl;
return 0;
}

比例简化

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

只需要从1到L遍历分母 \(b\) ,根据 \(b\) 我们能够马上推导出分子 \(a = \lceil \frac{A \times b}B \rceil\) ,然后假设我们当前的答案的分子是 \(A'\) 分母是 \(B'\) ,则当 \(a \le L\) 条件满足是,我们就需要去比较一下 \(\frac{a}{b} \lt \frac{A'}{B'}\) 是否成立,如果成立的话需要更新一下答案为 \(\frac{a}{b}\) ,但是比较实数会损失精度,所以比较规则应该是 \(a \times B' \lt A' \times b\) 。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
long long A, B, L, ans_a, ans_b;
int main() {
cin >> A >> B >> L;
for (long long b = 1; b <= L; b ++) {
long long a = (A * b + B - 1) / B;
if (a > L) continue;
if (!ans_b || ans_a * b > a * ans_b) {
ans_a = a;
ans_b = b;
}
}
cout << ans_a << " " << ans_b << endl;
return 0;
}

螺旋矩阵

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

本题涉及算法:模拟。

但是一格一格模拟是不对的,因为 \(n \le 30000\) ,\(n^2\) 会超时。

一行一列模拟是可以的,但是一圈一圈模拟更好。

我们先计算外面走了几个圈(这恰巧是一个等差数列),然后再计算最后走的那一圈(此时最多2行2列),即可获得目的地各自的编号。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
long long n, x, y; long long get_gezi_number(long long n, long long x, long long y) {
long long cnt = 0;
long long d = min( min(x-1, n-x), min(y-1, n-y) );
cnt = ( 4 * n - 4 + 4 * (n-2*d+2) - 4 ) * d / 2;
long long x1 = d+1, Y1 = d+1, x2 = n-d, y2 = n-d;
if (x1 == x) cnt += y-Y1+1;
else if (y2 == y) cnt += (n-2*d-1) + x-x1+1;
else if (x2 == x) cnt += 2 * (n-2*d-1) + y2-y+1;
else cnt += 3 * (n-2*d-1) + x2-x+1;
return cnt;
} int main() {
cin >> n >> x >> y;
cout << get_gezi_number(n, x, y) << endl;
return 0;
}

子矩阵

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

本题涉及知识点:状态压缩/枚举/DP。

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

作者:zifeiy

2014年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. 2013年NOIP普及组复赛题解

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

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

    题目涉及算法: 数字反转:模拟: 统计单词数:模拟: 瑞士轮:模拟/排序: 表达式的值:后缀表达式/DP. 数字反转 题目链接:https://www.luogu.org/problem/P1307 ...

  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. nginx反项代理的简单配置

    在ubuntu 16.04下安装nginx, apt-get install nginx就可以了. 然后安装了node, npm, 写了个简单的main.js,启动了一个http,并监听 8888 然 ...

  2. 数据库Mysql监控及优化

    在做 性能测试的时候数据最重要,数据来源于哪里呢,当然是数据库了,数据库中,我们可以知道,数据从磁盘中要比从缓存中读取数据的时间要慢的多的多,还可以知道,同样的一个sql语句,执行的效率也不一样,这是 ...

  3. 学习笔记(2)---Matlab 图像处理相关函数命令大全

    Matlab 图像处理相关函数命令大全 一.通用函数: colorbar  显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ col ...

  4. 去掉CSS赘余代码,CSS可以更简洁

    本篇文章适合css新手学习,对于已经掌握了css的朋友们也可以通过本片文章来复习知识. 作者通过实践,认为在有些情况下css的代码是可以更加简洁的,多数情况下是因为新手对于一些具有多属性的元素代码不能 ...

  5. 2019-10-18-dotnet-修复找不到-System.ServiceProcess-定义

    title author date CreateTime categories dotnet 修复找不到 System.ServiceProcess 定义 lindexi 2019-10-18 21: ...

  6. [运维]ESXI系统的安装 标签: 虚拟机运维vmware服务器虚拟化 2017-05-05 09:24 496人阅读 评论(15)

    上篇博客说到了VMware vSphere,那么接下来就讲一下我们如何将之投入使用.vsphere的虚拟机管理程序就是esxi. 什么是ESXI? vSphere产品套件的核心产品是虚拟机管理程序,作 ...

  7. 【水滴石穿】React Native 组件之SafeAreaView

    本文转载自:https://blog.csdn.net/xiangzhihong8/article/details/80692792 SafeAreaView简介 ReactNative官方从0.50 ...

  8. StatusBar用法

    一.StatusBar组件介绍 StatusBar 是 React Native 0.20 起新增的跨平台组件,它可以用来设置并动态改变设备的状态栏显示特性. StatusBar 组件可以同时加载多个 ...

  9. kubernetes1.4新特性:增加新的节点健康状况类型DiskPressure

    背景资料 在Kubernetes架构图中可以看到,节点(Node)是一个由管理节点委托运行任务的worker. 它能运行一个或多个Pods,节点(Node)提供了运行容器环境所需要的所有必要条件,在K ...

  10. 友盟iOS sdk整理

    文档中心 :http://dev.umeng.com 集成文档:http://dev.umeng.com/analytics/ios-doc/integration 报表中心:http://www.u ...