计蒜客NOIP习题
计蒜客NOIP习题与我的代码
Liukairui
这个作者很懒,什么都没留下…
展开
-
计蒜客习题:矩阵查询
问题描述给出 N×N 的矩阵 A,初始时均为 0。我们需要支持两种操作: C x1 y1 c,表示 (x1,y1) 上的元素加上 c。 (1≤x1,y1≤N,1≤c≤100) Q x1 y1 x2 y2,查询子矩阵元素之和。 (1≤x1≤x2≤N,1≤y1≤y2≤N) 输入格式 第一行两个整数 N,Q(1≤N≤1000,1≤Q≤50000)。接下来 Q 行,每行一个操作。 输出...原创 2018-07-04 23:39:59 · 426 阅读 · 0 评论 -
计蒜客习题:矩阵操作
问题描述给出 N×N 的矩阵 A,其中的元素是 0 或 1。初始时均为 0。 我们可以修改矩阵,给定左上角(x1,y1),和右下角 (x2,y2),对这个矩阵的所有元素执行取反操作,即 0 变成 1,1 变成 0。现在我们一共有两种操作: C x1 y1 x2 y2 (1≤x1≤x2≤n,1≤y1≤y2≤n),修改矩形 Q x y(1≤x,y≤n) 查询 Ax+…+Ay 的值 输入格式...原创 2018-07-04 23:41:09 · 624 阅读 · 0 评论 -
计蒜客习题:校长的问题
问题描述学校中有 n 名学生,学号分别为 1…n。再一次考试过后,学校按照学生的分数排了一个名次(分数一样,按照名字的字典序排序)。你是一名老师,你明天要和校长汇报这次考试的考试情况,校长询问的方式很奇怪,比如说:“学号前 a 的人中,排名前 b 的有多少人?”。 校长问了一堆这样的问题,你需要今天全部计算出来,明天好向他汇报。 输入格式 第一行俩个整数,n 和 m,分别表示学校学生的数...原创 2018-07-04 23:42:35 · 495 阅读 · 0 评论 -
计蒜客习题:蒜头君的任务
问题描述蒜头君的上司给蒜头君布置了一个任务,蒜头君维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾 L 个数中的最大的数,并输出这个数的值。 2、 插入操作。语法:A n 功能:将 n 加上 t,其中 t 是最近一次查询操作的答案(如果还未执行过查询操作,则 t=0),并将所得结果对一个固定的常数 D 取模,将所得答案插入到数列的末尾。 初始时...原创 2018-07-05 00:09:37 · 1763 阅读 · 1 评论 -
计蒜客习题:排序
问题描述你需要分析排序算法,将 n 个互不相同的整数,通过交换两个相邻的元素使得数列有序的 最少交换次数。 比如,原数列为: 9,1,0,5,4 排序后的数列为: 0,1,4,5,9 输入格式 第一行一个整数 n(n≤500000)。 接下来 n 行,每行一个整数 ai(ai≤10^9)。 输出格式 输出一个整数,表示操作次数。 样例输入591054样例输...原创 2018-07-05 08:27:39 · 1117 阅读 · 2 评论 -
计蒜客习题:学校的宣传板
问题描述计蒜理工大学有一个宣传板,大大小小事情的宣传都会往上面贴,上面布满了各种宣传海报。时间一长,上面的海报越来越多,一些陈旧的海报被新的完全覆盖掉了,一点都看不到了。 宣传板的高度和所有海报的高度都是一样的,但是宣传板很长。宣传板的长度为 m,每次贴完海报,都会做一个记录,这张海报贴在了宣传板的 a 到 b 处。 希望你能通过这些数据,来计算出宣传板上有多少张海报是可以看到的。(只要能...转载 2018-07-05 09:21:51 · 511 阅读 · 0 评论 -
计蒜客习题:奇怪的报数游戏
问题描述蒜头君所在的“蒜厂”在玩一个奇怪的报数游戏。一共有 n 个人参与游戏(蒜头君不在其中),首先给每个人一个编号,分别为 1,2,3,…,n。之后,这些人按照某个顺序站成一队,并告诉蒜头君,他们各自前面有多少人的编号比自己小。 现在,你能帮蒜头计算出来队伍中每个人的编号依次是多少么? 输入格式 第一行一个整数 N(2≤N≤500000)。 第 2 行到第 N 行,每行一个整数,...原创 2018-07-05 09:59:12 · 1031 阅读 · 0 评论 -
计蒜客习题:矩形的周长并
问题描述在一个二维坐标平面中,有 n 个矩形,每个矩形的边都是平行于 x 轴或 y 轴的。给定这 n 个矩形的位置,这 n 个矩形之间可以相互覆盖。 求这 n 个矩形所组成的图形的周长是多少。 输入格式 第一行输入一个整数 n,表示平面中矩形的数量。(1≤n≤50000) 接下来 n 行,每行四个整数 x1, y1, x2, y2 表示每个矩形左下角的坐标和右上角的坐标。(0≤x1...转载 2018-07-05 10:25:01 · 955 阅读 · 0 评论 -
计蒜客习题:矩形的面积并
问题描述在一个二维坐标平面中,有 n 个矩形,每个矩形的边都是平行于 x 轴或 y 轴的。给定这 n 个矩形的位置,这 n 个矩形之间可以相互覆盖。 求这 n 个矩形所占用的平面总面积是多少。 输入格式 第一行输入一个整数 n,表示平面中矩形的数量。(1≤n≤50000) 接下来 n 行,每行四个整数 x1, y1, x2, y2 表示每个矩形左下角的坐标和右上角的坐标。(0≤x1...转载 2018-07-05 10:29:12 · 1450 阅读 · 0 评论 -
计蒜客习题:奇怪的二叉树
问题描述蒜头君最近遇到一道难题,想请聪明的你来帮忙解决一下。题目给了一棵奇怪的二叉树,树上有 n 个结点,每个结点按中序遍历的顺序依次编号为 1 到 n。每个结点都有一个权值,第 i 个结点的权值为 wi。每棵子树也有一个权值,记 s(i) 为以编号 i 为根结点的子树的权值,结点 i 的左孩子结点编号为 ileft,右孩子结点编号为right,则 s(i) 的计算方法为: s(i)=...原创 2018-07-10 13:42:03 · 775 阅读 · 1 评论 -
计蒜客习题:卡牌游戏
问题描述蒜头君手里有 n 张卡牌,编号从 1 到 n,每张卡牌上面有一个数字 numi。现在蒜头君将 n 张卡牌排成一行,组成一个序列,执行以下操作:从序列中抽取一张编号为 i 的卡牌,则该张卡牌贡献 的得分为 numi−1×numi×numi+1,即卡牌上的数字同左右两 张相邻的卡牌上的数字乘积。但是不能抽取序列中最左边和最右边的卡牌,即i≠1 且 i≠n。抽到的卡牌就从序列中去掉。...原创 2018-07-10 13:50:01 · 3040 阅读 · 0 评论 -
计蒜客习题:矩阵变换
问题描述已知矩阵 A,矩阵 2 行 4 列|1 2 3 4||8 7 6 5|矩阵的状态可以用序列 12345678 来表示。即从左上角开始,按顺时针方向依次写下每个数字。对于这个矩阵,我们可以有 3 种不同的操作,具体如下: A:互相交换上下两行,如上例可变换为状态87654321; B:两行分别循环右移一位,如上例可变换为状态41236785; C:中间 个元素同时顺时...原创 2018-07-10 14:12:15 · 857 阅读 · 0 评论 -
计蒜客习题:猴子打字
问题描述有一个有趣的定理:无限猴子定理(infinite monkey theorem),它的表述如下:让一只猴子在打字机上随机按键,当按键次数达到无穷时,几乎必然能够打出任何给定的文字。 给出一篇猴子打出的“文章”,并给定一个由若干个词组成的词典,问猴子一共打出了多少个在词典中出现的词。 输入格式 第一行一个整数 n(1≤n≤10000),表示词典中单词的个数。 接下来 n ...原创 2018-06-08 21:14:58 · 998 阅读 · 0 评论 -
计蒜客习题:蒜厂工作手册
问题描述蒜厂工作手册,你听说过么?蒜头君把蒜厂工作手册全部摘抄了下来并把它变成了一个长度不超过 10^5的字符串 S,蒜头君还有一个包含 n 个单词的列表,列表里的 n 个单词记为 t1⋯tN。他希望从 S 中删除这些单词。 蒜头君每次在 S 中找到第一个出现的列表中的单词,然后从 S 中删除这个单词。他重复这个操作直到 S 中没有列表里的单词为止。需要注意的是删除一个单词后,后...转载 2018-06-08 21:25:49 · 437 阅读 · 0 评论 -
计蒜客习题:斑点蛇
问题描述有一种神奇斑点蛇,蛇如其名,全身都是斑点,斑点数量可以任意改变。 有一天,蒜头君十分的无聊,开始数蛇上的斑点。假设这条蛇的长度是N cm,蒜头君已经数完开始时蛇身的第i上有ai个斑点。 现在蒜头君想知道这条斑点蛇的任意区间的蛇身上一共有多少个斑点。这好像是一个很容易的 事情,但是这条蛇好像是和蒜头君过不去,总是刻意的改变蛇身上的斑点数量。 于是,蒜头君受不了了,加上蒜头...原创 2018-06-17 11:37:20 · 475 阅读 · 0 评论 -
计蒜客习题:最甜的苹果
问题描述蒜头君有很多苹果,每个苹果都有对应的甜度值。 蒜头君现在想快速知道从第 i 个苹果到第 j 个苹果中,最甜的甜度值是多少。 因为存放时间久了,有的苹果会变甜,有的苹果会因为腐烂而变得不甜,所以蒜头君有时候还需要修改第 iii 个苹果的甜度值。 输入格式第一行输入两个正整数N,M(0输出格式在一行里面输出每次询问的最高甜度值。 样例输入5 61 2 3 ...原创 2018-07-03 22:14:57 · 460 阅读 · 0 评论 -
计蒜客习题:公告板
问题描述蒜厂有一个 h×w 的矩形公告板,其中 h 是高度,w 是宽度。 现在有若干张 1×Wi 的公告, Wi 是宽度,公告只能横着放,即高度为 1 的边垂直于水平面,且不能互相有重叠,每张公告都要求尽可能的放在最上面的合法的位置上。 若可以放置,输出每块可放置的位置的行号;若不存在,输出 −1。行号由上至下分别为 1,2,…,h。 输入格式 第一行三个整数 h,w,n (1≤h,w...原创 2018-07-03 22:25:20 · 694 阅读 · 0 评论 -
计蒜客习题:帕吉的肉钩
问题描述在 DotA 游戏中,帕吉的肉钩是很多英雄最害怕的东西。钩子由连续若干段的等长金属棒制成。 现在帕吉对钩子由一些操作: 我们将金属棒 1~n 依次编号,帕吉可以把编号 x~y 的金属棒变成铜棒、银棒、金棒。 每段铜棒的价值是 1;每段银棒的价值是 2;每段金棒的价值是 3。 肉钩的总价值是 n 段金属棒价值之和。 帕吉想知道若干操作以后钩子的总价值。 输入格式 第一行一...原创 2018-07-03 22:47:23 · 455 阅读 · 0 评论 -
计蒜客习题: 黑白石头
问题描述沙滩上有一些石头,石头的颜色是白色或者黑色。小羊会魔法,它能把连续一段的石头,黑色变成白色,白色变成黑色。小羊喜欢黑色,她想知道某些区间中最长的连续黑石头是多少个。 输入格式 第一行一个整数 n(1≤n≤100000)。 第二行 n 个整数,表示石头的颜色,0 是白色,1 是黑色。 第三行一个整数 m(1≤m≤100000)。 接下来 m 行,每行三个整数 x,i,j。 x...原创 2018-07-04 00:28:57 · 691 阅读 · 0 评论 -
计蒜客习题:区间整数操作
问题描述给出 N 个整数 A1,A2,…,AN,你需要处理区间加,区间求和。 输入格式 第一行两个整数 N 和 Q (1≤N,Q≤10^5)。 第二行 N 个整数,表示 A1,A2…AN(∣Ai∣≤10^9)的初始值。 接下来 Q 行,每行一个操作: C a b c,表示 Aa,Aa+1…Ab 每个数加 c (∣c∣≤10000)。 Q a b,表示询问 Aa,Aa+1…Ab 的...原创 2018-07-04 14:56:02 · 494 阅读 · 0 评论 -
计蒜客习题:棋子等级
问题描述坐标系平面上有好多棋子,每个整点上至多有一个棋子。 假定棋子的等级是左下方的棋子个数,现在给出若干棋子的位置,求不同等级的棋子各有多少个。左下方包含正下和正右。说明(0, 0) 坐标的位置在左下角。 输入格式 第一行一个整数 N (1≤N≤100000) 接下来 N 行,一行两个整数 X,Y (0≤X,Y<100000),表示坐标。 数据保证坐标先按 Y 排序,再按 ...原创 2018-07-04 15:35:11 · 552 阅读 · 1 评论 -
计蒜客习题:木桩涂涂看
问题描述n 个木桩排成一排,从左到右依次编号为 1,2,3…n。每次给定 2 个整数 a,b(a≤b),蒜头君便骑上他的电动车从木桩 a 开始到木桩 b 依次给每个木桩涂一次颜色。但是 n 次以后 lele 已经忘记了第 i 个木桩已经涂过几次颜色了,你能帮他算出每个木桩被涂过几次颜色吗? 输入格式 第一行是一个整数 n(n≤100000)。 接下来的 n 行,每行包括两个整数 a, b...原创 2018-07-04 16:04:28 · 641 阅读 · 0 评论 -
计蒜客习题:旋转数字
问题描述蒜头君发现了一个很好玩的事情,他对一个数作旋转操作,把该数的最后的数字移动到最前面。比如,数 123 可以得到 312, 231,123这样就可以得到很多个数。 现在,蒜头君的问题是这些数中,有多少个不同的数小于原数,多少个等于原数,多少个大于原数。 旋转中可能会出现前导零,两数比较的时候可以忽略前导零的影响。 输入格式 输入一个整数 N(0 < N <1e...原创 2018-06-08 14:02:38 · 650 阅读 · 0 评论 -
计蒜客习题:重复的密文
问题描述蒜头君收到了一串密文,但是由于接收器坏了,他不停的重复接收,终于,蒜头君把插头拔了,机器停止了,但是蒜头君已经收到了一个很长字符串,它是由某个原始串不停的重复形成了,因为断电,最后一遍也不一定是完整的。蒜头君现在想知道这个原始串的最短可能长度是多少。 输入格式 第一行输入一个正整数 L(1AC代码#include &lt;iostream&gt;#inclu...原创 2018-06-08 14:04:39 · 497 阅读 · 0 评论 -
计蒜客习题:阿里天池的新任务
问题描述阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 s 中出现了多少次。 定义序列 w: 输入格式 数据第一行为 5 个整数,分别代表 n , a , b , L , R。第二行为一个仅包含 A,T,G,C的一个序列代表 t。数据保证 1<=n<=1e6, 0 < a &l...原创 2018-06-08 14:13:45 · 437 阅读 · 0 评论 -
计蒜客习题:首尾相接
问题描述蒜头君有两个字符串 S1 和 S2,蒜头君想把 S1 接到S2 后面。因为 S1 前面有一些字符和 S2 后面的一些字母一样,所以蒜头君在连接的时候就没必要重复了,比如S1 为cdefgh,S2 为abcde,那么cde这部分就是最长的重复部分,蒜头君可以将这两个串连接为abcdefgh。现在,给你串S1 和串 S2,请你帮蒜头君找出最长重复部分的长度。 ...原创 2018-06-08 14:18:44 · 782 阅读 · 4 评论 -
计蒜客习题:糟糕的 Bug
问题描述蒜头君作为蒜厂的工程师,在开发网站时不小心写出了一个 Bug:当用户输入密码时,如果既和自己的密码一致,也同时是另一个用户密码的 前缀 时,用户会跳转到 404 页。 然而蒜头君坚称:我们的用户那么少,怎么可能触发这个 Bug…… 机智的你,能不能帮蒜头君确认一下这个 Bug 到底会不会触发呢? 输入格式 第一行输入一个整数 n(1≤n≤233333),表示蒜厂网站的用...原创 2018-06-08 18:43:44 · 725 阅读 · 0 评论 -
计蒜客习题:新年礼物
问题描述新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,其中有一份神秘大奖,但却不知道应该发给谁。于是,蒜厂 BOSS 打算让大家玩一个游戏。 一共有 n 个字符串排成一排,蒜头需要从中按顺序选取一部分字符串,使得选出来的字符串顺序和原顺序一致(也就是从中选出一个子序列),且靠前的字符串 xi 和靠后的字符串 xj 之间均同时满足如下要求: xi是 xj的前缀 xi 是 xj...原创 2018-06-08 19:35:08 · 918 阅读 · 0 评论 -
计蒜客习题:气球消消乐
问题描述蒜头君有 n 只气球,蒜头君把气球排成一排。初始时,气球都是白色,现在蒜头君想用 m 种颜色给气球涂色,如果相邻的气球的颜色相同,这 2 个气球会发生消消乐,蒜头君希望你求出会发生消消乐的涂色方法有多少种。最后答案对 10^9+7取模。 输入格式 输入两个整数n(1<=n<=10^12),m(1<=m<=10^8) 输出格式 输出一行表示答案。 ...原创 2018-04-14 20:56:12 · 1367 阅读 · 0 评论 -
计蒜客习题:同余方程
问题描述已知整数 a 和 b,求关于 x 的同余方程 ax≡1(mod b) 的最小正整数解。 输入格式 输入一行,输入两个整数 a, ba,b(2<=a,b<=2*10^9)。 输出格式 输出一行,输出一个整数,即同余方程的最小正整数解。输入数据保证一定有解。 样例输入 3 8 样例输出 3AC代码#include <iostream...原创 2018-04-14 21:00:11 · 756 阅读 · 0 评论 -
计蒜客习题:机器人的相遇问题
问题描述蒜头君和花椰菜君各做了一个机器人,小蒜和小花。 蒜头君和花椰菜君打算用他们的机器人做个试验,同时放在圆形跑道上的两个点上,各自朝顺时针方向走,直到同时停留在相同的点上为止,即相遇点必须同时是双方走的某一步的终点。 假设圆形跑道的长度为 L,出发点的位置为原点 0,顺时针方向为正方向。这样我们就得到了一条首尾相接的数轴。设小蒜的出发点坐标是 x,小花的出发点坐标是 y。小蒜一...原创 2018-04-21 18:01:24 · 1224 阅读 · 0 评论 -
计蒜客习题:Fib数列问题之二
问题描述用 fib(n) 表示斐波那契数列的第 n项,现在要求你求 fib(n) mod m。fib(1)=1,fib(2)=1。 输入格式 输入 2 个整数 n(1≤n≤10^18 ),m(2≤m≤100000000)。 输出格式 输出 fib(n) 对 m 取模的值。 样例输入 100000000 100000000 样例输出 60546875AC代码...转载 2018-04-21 19:46:03 · 834 阅读 · 0 评论 -
计蒜客习题:蒜头君倒水
问题描述蒜头君倒了 2 杯热水在杯子里面,第一杯里面有 a 毫升,第二杯里面有 b 毫升。水太热了,蒜头君决定通过轮流倒水的方式来让水冷下来。每次倒水蒜头君把第一杯的 x%的水倒入第二杯,把第二杯的 y% 的水倒入第一杯(蒜头君有奇特的方法,能让这一过程是同是发生的,没有先后之分),蒜头君一直重复倒水,求倒了 k 次以后 2个杯子的水的容量。 输入格式 第 1 行输入 2 个正整数...原创 2018-04-21 20:01:38 · 693 阅读 · 1 评论 -
计蒜客习题:垒骰子
问题描述赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm 想计算一下有多少种不同的可能的垒骰子方式。两种垒骰...转载 2018-04-21 20:17:25 · 745 阅读 · 0 评论 -
计蒜客习题:蒜头君走迷宫
问题描述蒜头君从一个 n 行 m 列的迷宫的左上角走到右下角,蒜头君每次只能向下或者向右走一步,蒜头君想知道他有多少种走法。 输入格式 输入两个整数 n(2≤n≤10^5),m(2≤m≤10^5)。 输出格式 由于方案数太多,输出最后结果对 1000000007 取模的结果。 样例输入 2 3 样例输出 3AC代码(费马)#include <...原创 2018-04-08 09:22:54 · 1607 阅读 · 0 评论 -
计蒜客习题:互质数个数
问题描述给定一个整数 n,请问有多少个整数 i 满足条件:gcd(i,n)=1,1≤i≤n。 输入格式 输入一行,输入一个整数 n (n<=10^9)。 输出格式 输出一行,输出一个整数,表示符合条件的整数个数。 样例输入 16 样例输出 8AC代码#include <iostream>using namespace std;in...原创 2018-04-06 17:41:57 · 1266 阅读 · 0 评论 -
计蒜客习题:质数原根
问题描述如果一个数 x(0< x< p),满足集合 {xi%p∣1≤i< p} 等价于集合 {1,⋯,p−1},则我们称 x 为质数 p 的一个原根。例如,假设 p 为 3,2 的各项幂对 3 取余的结果为 2,1,则 2 为质数 p 的一个原根。 现在已知一个质数 p,求质数 p 的原根个数。 输入格式 输入有多组数据,不超过100行。 每组数据输入一行,输...原创 2018-04-06 17:46:08 · 544 阅读 · 0 评论 -
计蒜客习题:蒜头君的多项式
问题描述蒜头君遇到一个难解的多项式 (px + qy)^k,现在蒜头君知道了参数 p,q,k,他想知道把多项式展开后,其中 x^a y^b这一项的系数 s,蒜头君告诉你 a 和 b,想请聪明的你帮他计算一下 s%10007 的结果。 输入格式 输入一行,输入五个整数,每两个整数之间用一个空格隔开,分别为p,q,k,a,b(0≤k≤1000,0≤a,b≤k),保证 a+b=k。 输...原创 2018-04-06 21:45:00 · 1019 阅读 · 0 评论 -
计蒜客习题:互质数
问题描述如果两个数 a 和 b 满足条件 gcd(a,b)=1,则数 a 和 b 互质。现在要求出第 k 小的且与 n 互质的数。 输入格式 输入一行,输入两个整数 n 和 k (1≤n≤10^6,1≤k≤10^8)。 输出格式 输出一行,输出第 k 小的且与 n 互质的数。 样例输入 2321 4 样例输出 4AC代码#include <iost...原创 2018-04-06 22:55:02 · 1071 阅读 · 0 评论 -
计蒜客习题:吃辣椒
问题描述蒜头君喜欢吃辣椒。他一共有 NN 种辣椒,每种辣椒有一个辣度值 pi 。当蒜头君吃辣椒的时候,他恰好一口吃 K 种辣椒。这辣椒有一点奇怪,当同时吃下 K 种辣椒时,只能感受到辣度值最大的那种辣椒的辣度值。蒜头君会试下每一个 K 种辣椒的组合,他想要知道他能感受到的辣度值之和是多少。 输入格式 第一行输入两个正整数 N 和 K(N≤100,000,K≤50),表示有 N 种辣...原创 2018-04-07 18:29:21 · 722 阅读 · 0 评论