题目描述 Description 给出如下定义: 1. 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素得到一个2*3的子矩阵如右图所示. 9   3   3   3   9 9   4   8   7   4 1   7   4   6   6 6   8   5   6   9 7   4   5   6   1 的其中一个2*3的子矩阵是4   7   48   6…
题目描述 Description 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏.  在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大.游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方. 游戏开始,小涵和计算机要从自由武将中挑选武将组成自…
2018年11月10日,NOIP2018普及组复赛. 这是我初中阶段最后一次复赛了. 和往常一样,我们在预定的早上7点,没有出发. 10分钟之后,人终于到齐了,于是出发了,一路无话. 到了南航,合照三张,在慧园食堂吃了午饭. 赛前有听说是吉老师命题,非常紧张,几乎什么都没吃.总是在担心开题看到第一句:"九条可怜是一个热爱出题的女孩子." 中午,依旧在长空学院休息.在那里,拿到了参赛证.准考证和身份证. 我是JS-0300,机位号6A-098,建立文件夹的名字为6A-098JS-0300…
[NOIP2014 普及组]螺旋矩阵 一.题目 [NOIP2014 普及组]螺旋矩阵 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 0 [提交][状态][讨论版] 题目描述 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中所有格子.根据经过顺序,在格子中依次填入1, 2, 3, ... , n,便构成了一个螺旋矩阵.2 下图是一个n = 4 时的螺…
提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:https://www.luogu.org/problem/show?pid=2010 T3:https://www.luogu.org/problem/show?pid=2058 T4:https://www.luogu.org/problem/show?pid=2119) 不得不说,亲历了14.1…
题目描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大.” 如果你是辰辰,你能完成这个任务吗?  输入输出格式 Input/output 输入格式:…
很明显我是想发提高组合集的.普及组考纲……用发么. 当然如果你想看的话也可以,就一点点: 递归.排序…… 很明显上面那都不是重点.普及组只要掌握搜索.二分.单调队列.数学.随机化等等,一等奖没问题的,但是要想AK普及组题目的话也不是那么容易,这得有熟练的调试和查细节能力才行.比如noip2017普及组的t3,你可能顺手打个搜索就过了但是忘了右下角终点是白格子的情况,从而痛失50分.总之普及组拿一等奖很容易,练过一年编程的相信都没问题(当然你是认真学),但要AK就得提高编程水平了,一般等你拿了省一…
题目:洛谷P2258.Vijos P1914.codevs 3904. 题目大意:给你一个矩阵,要你找一个r行c列的子矩阵,求最小分值(子矩阵和分值的定义见原题). 解题思路:n和m比较小,考虑暴力. 发现时间复杂度为$O(C_n^r ×C_m^c)$,可能会炸掉.因此考虑优化. 我们可以只暴力出行,然后通过dp求出和: 设f[i][j]表示选i列最后一个选j所得到的最小分值,x[i][j]表示第i列和第j列能产生的分值(不包括上下),y[i]表示第i列能产生出的分值(上下),这些都表示当前暴力…
题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及.    某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法.他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?    最近老师出了一些测验题,请你帮忙求出答案. 输入格式:输入共两行,第一行包含一个整数n,表示测试题中给出的正整数个数. 第二行有n个正整数,每两个正…
题目描述 Description 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中所有格子.根据经过顺序,在格子中依次填入1, 2, 3, ... , n,便构成了一个螺旋矩阵.2 下图是一个n = 4 时的螺旋矩阵. 1     2     3     4 12    13    14    5 11    16    15    6 10     9     8     7…
题目及涉及的算法: 数字统计:入门题: 接水问题:基础模拟题: 导弹拦截:动态规划.贪心: 三国游戏:贪心.博弈论. 数字统计 题目链接:洛谷 P1179 这道题目是一道基础题. 我们只需要开一个变量 \(cnt\) 用于统计 \(2\) 出现的次数,然后从 \(L\) 到 \(R\) 去遍历每一个数 \(i\) ,对于 \(i\) 来说,我们去遍历它的每一位是不是 \(2\) ,如果是的话,则 \(cnt++\) .最后输出 \(cnt\) 即可. 实现代码如下: #include <bits…
珠心算测验 模拟. 将所有“两个不同数之和”装进桶里,扫描原数组记录满足条件的数的个数. /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<cmath> using namespace std; ; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +…
本题可以直接模拟填数字,也可以直接计算结果. 代码一:(这个代码,缺陷在于数组太大,浪费内存啊.另外,循环次数也不少.总之,时间空间的消耗都不小.) /*=============================================================== 本段代码是模拟往数组填数字的过程. 每填写一个值就判断该位置是否(i,j).若寻到目标位置, 则输出答案. =======================================================…
题目链接:https://ac.nowcoder.com/acm/contest/230/B 题目大意: 略 分析: DFS模板题. 代码如下: #include <bits/stdc++.h> using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define For(i,s,t) for (int i = (s); i <= (t); ++i) #define rFor(i,t,s) for (…
求数组有多少个数,恰好等于集合中另外两个(不同的)数之和? 注意到数集比较小,而且涉及到下标的加法,可以很自然地想到卷积 注意减去自己加自己的贡献 真是一道NTT练手好题 #include <iostream> #include <cstdio> #include <cstring> using namespace std; #define Dollar1 998244353 #define MAXN 70001 #define int long long int li…
传送门 解题思路 高维前缀和模板题.首先,求前缀和有两种方式,比如说对于求二维前缀和来说. 第一种 : for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]; 这一种其实就相当于用了容斥原理. 第二种 : for(int i=1;i<=n;i++) sum[i][j]+=sum[i-1][j]; for(int i=1;i<=n;i++) sum[i][…
题目涉及算法: 标题统计:字符串入门题: 龙虎斗:数学题: 摆渡车:动态规划: 对称二叉树:搜索. 标题统计 题目链接:https://www.luogu.org/problem/P5015 这道题目是一道基础题,考察你字符(串)的输入. 实现代码如下: #include <cstdio> char c; int cnt; int main() { while (c = getchar()) { if (c == EOF || c == '\n') break; if (c != ' ') c…
题目涉及算法: 成绩:入门题: 图书管理员:模拟: 棋盘:最短路/广搜: 跳房子:RMQ/二分答案/DP(本人解法). 成绩 题目链接:https://www.luogu.org/problemnew/show/P3954 入门题,直接计算一下即可. 实现代码如下: #include <bits/stdc++.h> using namespace std; int a, b, c; int main() { cin >> a >> b >> c; cout…
题目涉及算法: 买铅笔:入门题: 回文日期:枚举: 海港:双指针: 魔法阵:数学推理. 买铅笔 题目链接:https://www.luogu.org/problem/P1909 设至少要买 \(num\) 只笔,且对于每只钱币,设它的价格为 \(a\) ,笔数为 \(b\) ,则花费为最大的那个 \(\lceil \frac{num}{a} \rceil \times b\) . 实现代码如下: #include <bits/stdc++.h> using namespace std; int…
题目涉及算法: 金币:入门题: 扫雷游戏:入门题: 求和:简单数学推导: 推销员:贪心. 金币 题目链接:https://www.luogu.org/problem/P2669 入门题,直接开一个循环遍历一下就可以了. 实现代码如下: #include <bits/stdc++.h> using namespace std; int n, ans = 0; int main() { cin >> n; for (int i = 1; n; i ++) { int t = min(i…
题目涉及算法: 珠心算测验:枚举: 比例简化:枚举: 螺旋矩阵:模拟: 子矩阵:状态压缩/枚举/动态规划 珠心算测验 题目链接: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() {…
题目涉及算法: 数字反转:模拟: 统计单词数:模拟: 瑞士轮:模拟/排序: 表达式的值:后缀表达式/DP. 数字反转 题目链接:https://www.luogu.org/problem/P1307 这道题目是一道基础的模拟题,只需要模拟将数字进行翻转就可以了,注意 \(0\) 和 负数. 实现代码如下: #include <bits/stdc++.h> using namespace std; void solve(int num) { if (num < 0) { putchar('…
题目涉及算法: 质因数分解:入门: 寻宝:模拟: 摆花:动态规划: 文化之旅:搜索. 质因数分解 题目链接:https://www.luogu.org/problem/P1075 这道题目只需要开个 for 循环就能够把书求出来. 开一个循环变量 i 从 2 开始一直加加,碰到的第一个能够整除n的i,就输出 \(n/i\) 然后 break 即可. 实现代码如下: #include <bits/stdc++.h> using namespace std; int n; int main() {…
题目涉及算法: 多项式输出:模拟: 分数线划定:模拟.排序: 细胞分裂:质因数分解: 道路游戏:动态规划. 多项式输出 题目链接:https://www.luogu.org/problem/P1067 纯模拟题.注意符号和1.0. 实现代码如下: #include <bits/stdc++.h> using namespace std; const int maxn = 110; int n, a[maxn]; int main() { cin >> n; for (int i =…
题目涉及算法: ISBN号码:简单字符串模拟: 排座椅:贪心: 传球游戏:动态规划: 立体图:模拟. ISBN号码 题目链接:https://www.luogu.org/problem/P1055 简单字符串模拟. 实现代码如下: #include <bits/stdc++.h> using namespace std; char c, s[20], d; int cnt = 1, a; int main() { cin >> s; for (int i = 0; i < 1…
题目涉及算法: 明明的随机数:简单模拟: 开心的金明:01背包: Jam的计数法:模拟: 数列:二进制. 明明的随机数 题目链接:https://www.luogu.org/problem/P1059 简单模拟:排序+去重.使用 sort + unique 实现. 实现代码如下: #include <bits/stdc++.h> using namespace std; int n, a[111]; int main() { cin >> n; for (int i = 0; i…
题目涉及算法: 陶陶摘苹果:入门题: 校门外的树:简单模拟: 采药:01背包: 循环:模拟.高精度. 陶陶摘苹果 题目链接:https://www.luogu.org/problem/P1046 循环一遍,找到有多少数小于等于陶陶的身高+椅子的高度的即可. 实现代码如下: #include <bits/stdc++.h> using namespace std; int a[10], n, cnt, tt; int main() { for (int i = 0; i < 10; i +…
题目涉及算法: 不高兴的津津:入门题: 花生采摘:贪心: FBI树:递归.DP求区间和: 火星人:模拟. 不高兴的津津 题目链接: 简单枚举. 遍历一遍,找到 \(a[i] + b[i]\) 最大的那个坐标即可. 实现代码如下: #include <bits/stdc++.h> using namespace std; int a[8], b[8], id; int main() { for (int i = 1; i <= 7; i ++) { cin >> a[i] &g…
题目涉及算法: 级数求和:入门题: 选数:搜索: 产生数:搜索.高精度: 过河卒:动态规划. 级数求和 题目链接:https://www.luogu.org/problemnew/show/P1035 开一个for循环,每次加上1/i,知道和 \(\gt K\) 即可. 实现代码如下: #include <bits/stdc++.h> using namespace std; double s, K; int i; int main() { cin >> K; for (i = 1…
题目描述 在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果.例如,对某一观点表示支持的有1498 人,反对的有 902人,那么赞同与反对的比例可以简单的记为1498:902. 不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意.因为这个比例的数值太大,难以一眼看出它们的关系.对于上面这个例子,如果把比例记为5:3,虽然与真实结果有一定的误差,但依然能够较为准确地反映调查结果,同时也显得比较直观. 现给出支持人数A,反对人数B,以及一个上限L,请你将A比B化简为A’比B…