[洛谷P2107] 小Z的AK计划】的更多相关文章

题目类型:贪心,堆 传送门:>Here< 题意:给出\(N\)个房间,每个房间距离起点的距离为\(x[i]\),每个房间可以选择进去和不进去,如果进去了那么要\(t[i]\)秒后才能出来.问在\(M\)秒内最多能进多少个房间 解题思路 第一眼是一个\(01\)背包,然而枚举当前房间和上一个房间,加上所用时间,复杂度\(O(n^3)\)-- 考虑枚举终点,这样所有路上的时间之和就可以确定了.然后就是看在剩余的时间里最多能去几个房间,这个很简单--假设全去,如果超时,那么每次踢出耗时最多的那个房间…
最近复习了一下堆,于是去luogu上找一些简单题写一写 贪心的想,小z不会到一半以后回头去Ak,因为这样从时间上想肯定是不优的,他可以早在之间经过时就AK所以我们可以将所有机房按照横坐标排序可以想到的是,我们最后肯定是要走过所有的机房,也就是说路程消耗的疲劳值是不可避免的.我们只能尽可能的减少小ZAK所花费的时间贪心的考虑,当我们在机房Ak所花费的时间长时,我们可能能在这个时间内AK更多的机房所以当时间出问题时,我们肯定要取出堆顶删除以便AK更多的机房.我们维护一个关于机房AK时间的大根堆,每次…
好久不做这种题了... 存一下每个点的位置和时间,由于达到某个位置跟之前去哪里AK的无关,所以在时间超限后,可以用大根堆弹掉之前消耗时间最大的,来更新答案,相当于去掉之前花费最大的,直到时间不在超限. #include<cstdio> #include<iostream> #include<queue> #include<algorithm> #define ll long long #define R register ll using namespace…
水一发优先队列的水题.. 这个题貌似以前有做过类似的.具体的方法是用大根堆辅助贪心算法得出正解.可以看出来,如果小Z走到了某个地方,那么他最远一定是到了这里,不可能有再走回来这种操作,因为很明显那样不是最优解. 然后我们基于刚才的考虑贪心,如果走的远近确定了,那么我们的选择一定是最小的那些店,维护一个大根堆,然后从小到大枚举位置,每枚举一次就入队一个数,如果当前的总和比疲劳值大了,就弹出队首元素.记得开longlong. #include<iostream> #include<cstdi…
题面 Bzoj 洛谷 题解 考虑莫队算法,首先对询问进行分块(分块大小为\(sqrt(n)\)),对于同一个块内的询问,按照左端点为第一关键字,右端点为第二关键字排序.我们统计这个区间内相同的颜色有多少个,假设某种颜色\(i\)有\(j\)个,则贡献就是\(j\times(j-1)\),最后记得化成既约分数. #include <set> #include <cmath> #include <cstdio> #include <cstring> #inclu…
https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. INV:将栈顶元素取出,然后放入它的相反数. DUP:再放入一个和栈顶元素相同的数. SWP:交换栈顶的两个元素. ADD:取出栈顶的两个元素,两元素相加,所得结果放入栈内. SUB:取出栈顶的两个元素,第二个元素减去第一个元素,所得结果放入栈内. M…
P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余之后的结果.举一个例子: 对于上图这个3*3矩阵A,G(A)=(1*1+1*0+1*1+0*1+1*1+1*0+1*1+ 0*1+0*0) mod 2=0 当然询问一个矩阵的G值实在是太简单了.小Z在给出一个N*N矩阵的同时将给你Q个操作,操作描述如下: 操作1:形如一个整数1和一个整数x,表示将第…
洛谷 这大概是我见过最水的紫题吧- 洛谷标签赞一个! 题意:你有一年时间,把10w元存银行变成更多钱,在特定时间区间内,你会有一些利息,不过不可中途退出. 直接dp:st[i]表示区间左端点,ed[i]表示右端点,a[i]表示利率. f[i]表示第i天的最大值.直接循环每天和每个套餐转移即可. code: #include <bits/stdc++.h> using namespace std; const int month[]={0,0,31,59,90,120,151,181,212,2…
P2188 小Z的 k 紧凑数 题目描述 小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数. 现在小 Z 想知道 [l,r] 内有多少个 k 紧凑数,希望你帮帮他. 输入输出格式 输入格式: 第一行包含三个整数 l,r,k. 输出格式: 第一行包含一个整数,表示 [l,r] 内 k 紧凑数的个数. 输入输出样例 输入样例#1: 1 13 1 输出样例#1: 12 说明 [数据规模] 对于 30% 的数据,r − l ≤ 10^5: 对于另…
https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余之后的结果.举一个例子: 对于上图这个3*3矩阵A,G(A)=(1*1+1*0+1*1+0*1+1*1+1*0+1*1+ 0*1+0*0) mod 2=0 当然询问一个矩阵的G值实在是太简单了.小Z在给出一个N*N矩阵的同时将给你Q个操作…