题目链接: [SDOI2019]快速查询 对于整个序列维护一个标记$(k,b)$表示序列的每个数的真实值为$k*a_{i}+b$(注意要实时维护$k$的逆元),并记录序列的和. 对于单点修改,将$a_{i}$修改为$val$,因为有序列标记,所以实际修改成$\frac{val-b}{k}$并开一个栈将这个位置压入栈中. 对于序列加和序列乘操作,直接修改标记与序列和即可,注意修改$k$时也要修改$b$. 对于序列赋值操作,将$k$赋成$0$,将$b$赋成$val$(即将操作看成先序列赋成$0$再序…
洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OIer 都有各自的时间安排,巧合的是,他们在接下来的 kk 天中都恰好有 mm 天有空打模拟赛. 为了方便管理,教练规定一个人必须按顺序打完 mm 套模拟赛题. 比如,小 X 在接下来的第 2,3,52,3,5 天有空打模拟赛,那么他就必须在第 22 天打第 11 套模拟赛题,第 33 天打第 22…
[SDOI2019]快速查询 [题目链接] 链接 [思路要点] 据说是 \(\text{SDOI2019}\) 最水的题 操作次数为 \(1e7\) 范围,显然要求每次操作 \(\mathcal{O}(1)\) 完成 并不需要任何数据结构维护 由于不同的操作数量为 \(1e5\) 级别,可以将所有涉及到的变量离散化出来,并且使用数组直接存储,其它的一些变量全程中值都相同,只需要一个变量记录 如果没有全体赋值的操作,只需要记录一个 \(A\) 和 \(B\) 以及每个数的初值,表示当前某个数的值是…
题目传送门 KRA 题目描述 For his birthday present little Johnny has received from his parents a new plaything which consists of a tube and a set of disks. The aforementioned tube is of unusual shape. Namely, it is made of a certain number of cylinders (of equa…
题目来源:洛谷P3952 思路 纯模拟没啥可说的了 果然好复杂 参考了你谷一个40行代码 代码 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int T,tot,num,Max,stand,now,k,n,cnt; ],what[]; ]; //tot是有几个句子,stand是题目给的复杂度是多少 //now是当前在几重循环,vis[]是判断变量是否使用过 //mem…
点此看题面 大致题意: 有单点赋值.全局加法.全局乘法.全局赋值.单点求值.全局求和\(6\)种操作.现在给出操作序列,以及\(t\)对正整数\(a_i,b_i\).让你处理\(t*q\)次操作,每次为操作序列中的第\(((a_i+jb_i)\%q+1)\)个操作.输出询问答案和. 模拟 这是一道很水的模拟题吧. 容易发现所有操作都可以\(O(1)\)搞,因此直接\(O(tq)\)暴力即可. 就是打标记比较烦. 还有\(n\)比较大可以把操作的位置离散化. 代码 #include<bits/st…
把有单点修改和查询的点离散进一个数组,然后单点修改直接改,记录一个修改时间t,维护一个sm表示这些离散的点的和,val表示出了离散点其他点的值,因为都是一样的所以只记录这一个值即可,记录ljlc为加法乘法的lazytag,整体加整体乘的时候像线段树一样改smljlc,还有修改val,整体赋值的时候把valsmljlc都初始化,记录一个赋值时间ti 单点查询的时候如果这个点的修改时间比当前赋值时间早就直接val,否则是数组值和lazytag操作一下,整体查询直接sm+val*has即可 那个求逆元…
U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不咕鸟Lyn_king一个人冒着太阳等了半个多小时,然后居然看到连ENLIGHTENED行动参谋都咕咕咕了,果然咕咕咕是人类的本性啊. 题目描述 作为一个ENLIGHTENED行动指挥,自然不想看到这一点,于是他偷取到了那些经常咕咕咕的Agent的在下来N天的活动安排表,并且叫上了你来整理.在整理过程…
题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的. 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写 一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他 需要的书,请输出-1. 输入输出格式 输入格式: 输入文件的第一行,包含两个正整数 n 和 q,以一个空格分开,…
侦探推理 题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯.接着,明明逐个询问每一个同学,被询问者可能会说: 证词中出现的其他话,都不列入逻辑推理的内容. 明明所知道的是,他的同学中有NN个人始终说假话,其余的人始终说真. 现在,明明需要你帮助他从他同学的话中推断出谁是真正的凶手,请记住,凶手只有一个! 输入输出格式 输入格式: 输…
题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”. 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱.在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图111).有经验的多多一眼就能看出,每棵花生植株下的花生有多少.为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生:然后再找出剩下的植株里花生最多的,去采摘它的花生:依此类推,不过你一定要在我限定…
[题目描述:] 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择住宿的方案,保证…
题目传送门 BUREK 格式难调,题面就不放了. 分析: 一道比较有思维难度的模拟题. 首先我们可以想到,对于一个三角形,可以画出一个最小矩形使得这个三角形被完全包围,并且这个矩形的边平行于坐标轴(图就不画了).如果某条直线经过这个矩形内部,那么它就一定也会把这个三角形分割成两块.而要得到这个矩阵,只需要分别得到三角形三点中的最大与最小横纵坐标就行了,也就分别转化成了横纵向的若干区间.那么问题就转化为:平行于$x$轴的直线被包含于多少纵向区间,平行于$y$轴的直线被包含于多少横向区间内. 那么这…
题目传送门 黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 8 的倍数, 于是每八个像素可以转换成一个叫做字节的数, 从而这个表示图像的像素序列就被转换成了字节的序列. 所谓的字节就是一个八位的二进制数(当然,为了便于书写,人们经常用它的十进制形式来表示).这八个像素从前向后依次对应于字节从高位到低位的八个位, 用 0 来表示白色像素. 1 来表示黑色像素. 这种表示方法叫做位…
题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里. ” 小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边是逆时针方向; 而面向圈外的玩具小人, 它的左边是逆时针方…
https://www.luogu.org/problemnew/show/P1739 虽然应该是用栈的……但是直接模拟就可以了. #include<bits/stdc++.h> using namespace std; #define ll long long ]; int main(){ fgets(s,,stdin); int n=strlen(s); ; ;i<n;i++){ if(s[i]=='(') cntl++; else if(s[i]==')'){ ){ printf(…
题目:https://www.luogu.org/problemnew/show/P1328 直接模拟即可. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ][],ansa,ansb; void init() { p[][]=p[][]=; p[][]=p[][]=; p[][]=p[][]=; p[…
题目:https://www.luogu.org/problemnew/show/P2615 直接按题意模拟即可; 用 Emacs 做的第一道题! 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int n,a[maxn][maxn]; int main() { scanf("%d"…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1800   https://www.luogu.org/problemnew/show/P2165 n 才20,所以模拟: 一开始是这样写的,惨WA2个点: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; type…
题目链接 吐槽 竟然让\(nlog\)的做法卡过去了.. 思路 因为\(1 \le q \le 10^5\),所以可以先对每个标准操作,所操作的位置进行重标号.这样所有的下标都是在\(10^5\)以内的. 乘和加操作都可以写成\(kx+b\)的形式.然后对于这些操作维护一个前缀.然后就可以得到一个区间内的操作了. 区间查询我们只要找个\(TOT\)来维护一下当前的所有元素和,就行了. 单点查询,观察其上次赋值的时间.如果早于集体赋值,那么就输出当前大多数的值. 否则就将其上次赋的值乘上从上次赋值…
原题传送门 神鱼说这道题是强制离线(smog 我们珂以把被单点修改,单点查询的点单独拿出来处理,把每个数表示成\(mul*x+plus\) 初始状态下\(mul=1,plus=0\) 操作1:在总和中减去\(val[pos[x]]\)(\(pos\)表示离散化后的位置,\(val\)表示特殊点的数值):将\(val[pos[x]]\)变成\(\frac{val_{new}-plus}{mul}\):如果\(pos[x]\)不在非零位置的栈中,将\(pos[x]\)压入栈中:在总和中加上\(val…
题目链接:https://www.luogu.org/problemnew/show/P1226 题意:求b^p % m之后的结果 题解:快速幂模板 代码: #include<iostream> #include<algorithm> #include<cmath> #include<cstdio> using namespace std; #define ll long long ll b,p,mod; ll qpow( ll a,ll b){ ll re…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1016 旅行家的预算 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离 $ D_1 $ .汽车油箱的容量 $ C $ (以升为单位).每升汽油能行驶的距离 $ D_2 $ .出发点每升汽油价格 $ P $ 和沿途油站数 $ N $ ( $ N $ 可以为零),油站i离出发点的距离 $ D…
题目链接:https://www.luogu.org/problem/P5020 这道题目是一道模拟题,但是又有一点多重背包的思想在里面. 首先我们定义一个 vis[i] 来表示和为 i 的情况在之前有没有出现过, 一开始当然所有的 vis[i] (除了 vis[0] )都为 false ,只有 vis[0] 为 true , 然后对于每一个 i 来说,我们从 a[i] 到 maxa (最大值)去判断 vis[j-a[i]] 是否为 true , 如果 vis[j-a[i]] 为 true,那么…
题目链接:https://www.luogu.org/problemnew/show/P5019 这道题目是一道模拟题,但是它有一点贪心的思想. 我们假设当前最大的深度是 \(d\) ,那么我们需要把所有深度为d的坑全都填成深度为 \(d-1\) ,然后去填深度为 \(d-1\) 的坑-- 实现代码如下(手动开启了O2优化,不然会TLE2组): #include <bits/stdc++.h> using namespace std; #pragma GCC optimize(2) const…
题目链接:https://www.luogu.com.cn/problem/P1035 题目描述 已知:\(S_n= 1+1/2+1/3+-+1/n\).显然对于任意一个整数 \(k\),当 \(n\) 足够大的时候,\(S_n>k\). 现给出一个整数 \(k\),要求计算出一个最小的 \(n\),使得 \(S_n>k\). 输入格式 一个正整数 \(k\) 输出格式 一个正整数 \(n\) 样例输入1 1 样例输出1 2 说明/提示 [数据范围] 对于 \(100\%\) 的数据,\(1\…
题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t 为下落时间.地面上的小车以速度 V 前进. 如下图: 小车与所有小球同时开始运动,当小球距小车的距离 <= 0.0001(感谢Silver_N修正) 时,即认为小球被小车接受(小球落到地面后不能被接受). 请你计算出小车能接受到多少个小球. 输入输出格式 输入格式:…
题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过.假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过.但是,可以有多个人同时呆在同一个位置. 题目描述 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须…
题目链接 https://www.mina.moe/archives/7598 //285ms 3.53MB #include <cstdio> #include <cctype> #include <cstring> #include <algorithm> //#define gc() getchar() #define MAXIN 300000 #define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,M…
U41568 Agent1 题目背景 2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENED与RESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派Agent去参加这次的XM大战,与世界其他地方的ENLIGHTENED并肩作战. 题目描述 某地的ENLIGHTENED总部总部有N个Agent,每个Agent的能力值互不相同,现在ENLIGHTENED行动指挥想要派出A,B两队Agent去参加XM大战.但是参加大战的两个队伍要满足两个要求: A队…