[LOJ6254]最优卡组 题面 题解:常用的用堆模拟搜索套路(当然也可以二分).先将每个卡包里的卡从大到小排序,然后将所有卡包按(最大值-次大值)从小到大排序,并提前处理掉只有一张卡的卡包. 我们将状态用一个四元组(val,x,y,z)表示,意思是当前所有卡的和是val,我们人为的选择了前x包卡(后n-x包卡都选的是最大值),第x包卡选择了第y张,z表示当前状态是否是由2或3转移得来的,具体含义见下面(设计的非常巧妙,一开始自己想了几个策略都有遗漏). 那么这个状态可以扩展到如下几种状态: 1…
特殊处理$c_{i}=1$的$i$,显然对这些$a_{i,1}$求和即可,以下都假设$c_{i}\ge 2$ 对于每一个$i$,将$a_{i,j}$从大到小排序:接下来,对于所有$i$,按照$a_{i,1}-a_{i,2}$从小到大排序 在堆中维护三元组$(S,x,y)$,按照$S$从大到小维护(即堆顶$S$最大),初始在堆中加入$(\sum_{i=1}^{n}a_{i,1},1,1)$ 每一次取出堆顶的三元组$(S,x,y)$并输出$S$,接下来: 1.若$y<c_{x}$,则加入三元组$(S…
[BZOJ4524][Cqoi2016]伪光滑数 Description 若一个大于1的整数M的质因数分解有k项,其最大的质因子为Ak,并且满足Ak^K<=N,Ak<128,我们就称整数M为N-伪光滑数.现在给出N,求所有整数中,第K大的N-伪光滑数. Input 只有一行,为用空格隔开的整数N和K 2 ≤ N ≤ 10^18, 1 ≤ K ≤ 800000,保证至少有 K 个满足要求的数 Output 只有一行,为一个整数,表示答案. Sample Input 12345 20 Sample…
[BZOJ4345][POI2016]Korale Description 有n个带标号的珠子,第i个珠子的价值为a[i].现在你可以选择若干个珠子组成项链(也可以一个都不选),项链的价值为所有珠子的价值和.现在给所有可能的项链排序,先按权值从小到大排序,对于权值相同的,根据所用珠子集合的标号的字典序从小到大排序.请输出第k小的项链的价值,以及所用的珠子集合. Input 第一行包含两个正整数n,k(1<=n<=1000000,1<=k<=min(2^n,1000000)). 第二…
编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取队头.判空的操作 队头对应数组中最后一个元素 入队和出队操作后,需要在 id 为 queue-cont 的 p 标签中更新显示队列中的内容,队头在最右侧,中间用 -> 连接(练习使用数组的join方法) <!DOCTYPE html> <html> <head> &l…
模拟搜索需要实现以下功能: 1.用户的模糊搜索不区分大小写,需要小写字母匹配同样可以匹配到该字母的大写单词. 2.多关键词模糊搜索,假设用户关键词以空格分隔,在关键词不完整的情况下仍然可以匹配到包含该关键字的表格. 3.表格筛选,符合条件的表格展现,不符合条件的表格隐藏. <!doctype html> <html> <head> <title>表格搜索</title> <meta charset="utf-8">…
NOIP2018提高组金牌训练营——搜索专题 1416 两点 福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”.基础级别的时候是在一个n×m单元上玩的.像这样: 每一个单元有包含一个有色点.我们将用不同的大写字母来表示不同的颜色. 这个游戏的关键是要找出一个包含同一颜色的环.看上图中4个蓝点,形成了一个环.一般的,我们将一个序列 d1,d2,...,dk 看成一个环,当且仅当它符合下列条件时: 1.    这k个点不一样,即当 i≠j时, di 和 dj不同. 2.    k至少是4. 3.  …
偶数萨 手打两天已上传说,各位加油  欧洲牧羊人 ### 火元素换艾雅# 职业:萨满祭司# 模式:狂野模式## 2x (2) 图腾魔像        # 2x (2) 大漩涡传送门   # 2x (2) 恐狼前锋          # 1x (2) 自动漩涡打击装置# 2x (2) 衰变                  # 2x (2) 连环爆裂# 2x (2) 阴燃电鳗          # 2x (2) 青玉之爪          # 1x (2) 风怒# 1x (4) 妖术# 2x (4…
2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c/cpp) 矩阵取数游戏(game.pas/c/cpp) 树网的核(core.pas/c/cpp) 统计数字(count.pas/c/cpp) 100 字符串的展开(expand.pas/c/cpp) 100 矩阵取数游戏(game.pas/c/cpp) 0 树网的核(core.pas/c/cpp)…
2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个正方形.注意木棍不能弯折.问方案数. 正方形:四条边都相等.四个角都是直角的四边形. Input 第一行一个整数n. 第二行包含n 个整数ai,代表每根木棍的长度. Output 一行一个整数,代表方案数. Sample Input 8 4 5 1 5 1 9 4 5 Sample Output 3…
2021.04.24[NOIP提高B组]模拟 总结 T1 题意:有一圈数.两两之间有加法或乘法操作, 问你开始断掉那条边使得剩下的序列经过某种操作后的值最大 看上去是个区间 dp .然后直接断环成列,找最大值. 光荣 WA 原因:负负得正,最小的两个负数相乘可能比最大的要大 所以多维护一个最小值,乘法的时候多考虑几种情况即可 #include<bits/stdc++.h> using namespace std; const int N=105; int n,m,x[N],f[N][N],g[…
Summary 今天比赛感觉题目很奇葩,都可以用许多简单方法来做,正确性都显然,当然也有点水,也就是说是考我们的数感和数学知识,而程序,只是代码的体现. 这次的时间安排感觉不错,因为很快就打完最后一道题了,后面的时间都在思考前面两道题 Problem T1 护花 题目大意 牛都跑出去了,FJ想要把他们抓回来.抓每只牛需要2*Ti分钟的时间,每只牛在没有被要抓回去时,每分钟吃Di棵花,问怎么样抓牛才能使被吃掉的花尽量少. 想法 本来我是想设一个动态规划,F[i,j]表示第i头牛,是第j只被抓的,然…
题目链接: [UOJ455]雪灾与外卖 题目描述:有$n$个送餐员(坐标为$x_{i}$)及$m$个餐厅(坐标为$y_{i}$,权值为$w_{i}$),每个送餐员需要前往一个餐厅,每个餐厅只能容纳$c_{i}$个送餐员,一个送餐员去一个餐厅的代价为$|x_{i}-y_{j}|+w_{j}$,求最小代价. 首先这个题可以暴力建图跑费用流,具体做法就不说了.现在我们考虑模拟费用流的过程,也就是模拟贪心及匹配中反悔的过程. 我们对送餐员和餐厅分别开一个小根堆然后从左往右决策每个坐标位置的人或餐厅的选择…
声明 数字对 Time Limits: 2000 ms    Memory Limits: 262144 KB Description 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.  她的面前浮现出一个长度为 n 的序列 {ai},她想找出一段区间 [L, R] (1 <= L <= R <= n). 这个特殊区间满足,存在一个 k (L <= k <= R),并且对于任意的 i (L <= i <= R),ai 都能被 ak 整除.这样的一个特…
目录 JZOJ.1747[NOIP2014模拟11.5]无穷迷宫 比赛时 之后 总结 JZOJ1478.[NOIP2014模拟11.5]近似乘积 比赛时 之后 总结 JZOJ3926. [NOIP2014模拟11.5]开关灯 比赛时 之后 JZOJ.1747[NOIP2014模拟11.5]无穷迷宫 比赛时 比赛时没多想,随便打了一个BFS,把迷宫复制成五份--上下左右中,然后跑BFS,如果能从1个S跑到另1个S,就可以无尽走下去否则不可以,WA30. 之后 其实,有一种特殊情况没有考虑例如下面这…
给出烟花的爆炸方式和爆炸次数 问最后有多少个格子会被炸到 如果dfs的话会超时... 利用模拟每一层来搜索..? 思想就是一开始有一个爆炸点向上 然后模拟完第一段 会产生一个爆炸点 朝两个方向 就用vector来存 每一层都处理一段的爆炸点 产生新一段的爆炸点 因为5*30=150 所以图建300就可以了 300 * 300 * 30的时间复杂度 但是常数很大..不过无所谓啦.. 需要注意的是 一个爆炸点可能会同时出现两次朝同一个方向开始爆炸的烟花 这个是没有意义的 所以拿一个数组来记录 不然最…
基础知识: 关于堆和栈,堆和栈是程序运行的关键,关于堆和栈的定义和解释可自行搜索,我比较认可以程序运行过程中他们扮演的角色作为对比的点:堆是存储的单位,而栈是程序运行时的单位.栈解决的是程序的运行问题,即程序如何运行,如何处理数据.堆解决的是存储问题,即数据存储在哪里,怎么存储. 程序中每启动一个线程就有一个栈与之对应.因为每个线程执行的逻辑不同,所以需要独立的栈来描线程如何运行.而堆是所有线程共享的. 栈之所以是运行时单位,主要是因为栈中保存的都是当前线程中,包括局部变量,程序运行状态和方法返…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3262 题意:教室有n*m个座位,每个座位有一个舒适值,有K个学生在不同时间段进来,要占t个座位,必须是连续的并且自己坐在最左边,如果有多个的话,找最舒适的座位,如果没有连续t个,那么只给自己找个最舒适的位子,如果都满的话,输出-1. 题解:一个简单的搜索模拟,注意的是,要排序每个同学进来的时间,而且输出要按照给的顺序输出,被坑了几次,样例数据太弱了. AC代码: #include <iostream>…
清除raid信息后,机器将会读不到系统, 后面若进一步操作处理, raid信息有可能会被初始化掉,那么硬盘数据就有可能会被清空, 导致数据丢失, 否则如果只是清除raid信息,重做raid是可以还原系统与硬盘数据   服务器开机自检到浪潮logo画面后,下一步就会进入Raid卡自检过程,此时显示器上会出现Ctrl -H提示, 浪潮服务器RAID 5配置方法 2 按下Ctrl -H组合键后,自检完成就会进入Raid卡配置界面,如下图.在这里可以看到Raid卡的型号和Firmware固件版本,点击[…
题目链接: 跳伞求生 可以将题目转化成数轴上有$n$个人和$m$个房子,坐标分别为$a_{i}$和$b_{i}$,每个人可以进一个他左边的房子,每个房子只能进一个人.每个房子有一个收益$c_{i}$,每个人进房子收益为$a_{i}-b_{j}+c_{j}$,不要求所有人都进房子,求最大收益.显然可以建图跑费用流,但数据范围较大,我们考虑模拟费用流.将人和房子放在一起按坐标从小到大排序,相同坐标的按收益(人的收益为$a_{i}$,房子的收益为$c_{i}-b_{i}$)从大到小排序.然后我们用一个…
题目链接: [Noi2017]蔬菜 题目大意:有$n$种蔬菜,每种蔬菜有$c_{i}$个,每种蔬菜每天有$x_{i}$个单位会坏掉(准确来说每天每种蔬菜坏掉的量是$x_{i}-$当天这种蔬菜卖出量),每卖出一个单位的蔬菜获得收益为$a_{i}$,第一次卖出一种蔬菜会得到$s_{i}$的额外收益,限制每天最多卖出$m$个单位的蔬菜,有$k$次询问,每次询问卖$p_{i}$天的最大收益. 因为每种蔬菜坏掉的部分是固定的,那么我们可以将每种蔬菜分成$\frac{c_{i}-1}{x_{i}}+1$类,…
Summary 今天的题目也不算很难,唯一一道没做出来的题目是以前做过的,太不应该了. Problem T1 油滴扩展 题目大意 给你一堆点,你准备要在这么多的点当中滴油.你可以自己安排顺序,每次滴油,呈圆形扩散,知道碰到别的油或者边框. 想法 因为点的数目很小,可以直接暴力枚举顺序.可以用两点距离减去已有半径得出现有半径. T2 数列 题目大意 给你一堆数,你可以删去其中某些数,使得下标和数相同的数最多. 想法 显然可以用DP 设f[i,j]表示当前选到了i这个数,前面删去了j个数 那么可以考…
Summary 今天的比赛60+100+100=260分,没有想到第一题正解是搜索,我与AK差一段距离,这段距离,叫倒着搜.总的来说不是很难. Problem T1 天平 题目大意 给你N个排序好的砝码的质量,从第三个砝码开始,它的重量最少是前两个砝码的质量之和.天平容不得超过C质量的质量.问最大的质量可以是多少. 想法 一般Usaco的题目都不会水到哪里去,但是今天的... 有两种方法. (1) 爆搜+剪枝 爆搜应该都会,参数是枚举到第K个,当前砝码是重S 优化一:如果当前的砝码质量加上没有抉…
Summary 今天的比赛打得还不错,第一题被同桌灌输的贪心,纯模拟洗脑了,然后steal的看了一下,发现怎么也对不了,一直在检查.最后10分钟才找出反例,推出动态规划方程,没有想到怎么转移,比赛就结束了.第二题题意理解错误了,但是还是拿到了充满希望的10分,第三题看到题目就直接上了线段树,我想没几个人能像我一样5分钟想完并打完这道题了.贪心一定要看到反例,不能盲目去做,否则浪费了时间,更让心情愈来愈不甘. Problem T1 解题 题目大意 奶牛有P (P≤300) 道题目要做.他们的月薪是…
省常中省选提高Day2 继续 第一题就考了贪心,正解95pts的贪心策略第一印象是想到的,但是被自己否定掉了qwq,然后打了 不是正解的贪心,样例5没过(可怜)思路如下:先找出每个门对应可以通过的人数是多少,每个人能通过多少门逃走 然后枚举能通过门最少的点优先选,合法门里面可以通过这扇门逃走人数最少的一扇门,这样做(57pts) 贴下代码: # include <bits/stdc++.h> using namespace std; ; struct rec{ int x,y,cnt; boo…
前缀数组其实就是有序的,那么答案显然是      我们尝试求出通项公式: 证明如下: 因为 所以: 解之得: 更加通俗的写法如下: 易知  令 那么, (错位相减) 由易知等式代入得, 所以, 所以程序如下: # include <bits/stdc++.h> using namespace std; ] ; int main() { freopen("absurdity.in","r",stdin); freopen("absurdity.o…
from HNOI2003 [题目描述:] 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则优先级越高. 如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束.除非在这个过程中,有一个比它优先级高的进程要运行.在这种情况下,这个新的(优先级更高的)进程会占用CPU,而老的只有等待. 如果一个进程到达时,CPU正在处理一个比它优先级高或优先级相同的进程,则这个(新到达的)…
t1 jzoj3762 过河 路径分段,计算出向上移对答案贡献最大的一段路,再使用堆来维护即可 代码: #include<bits/stdc++.h> using namespace std; double dis(double x,double y){ return sqrt(x*x+y*y); } struct no{ int x,y,v; double w; bool operator <(const no &rhs)const{ return w>rhs.w; }…
2.道路修建 描述 Description liouzhou_101最悲痛的回忆就是NOI2011的道路修建,当时开了系统堆栈,结果无限RE… 出于某种报复心理,就把那题神奇了一下: 在 Z星球上有N个国家,这N个国家之间只能建造N-1条道路且全部建完这N-1条道路后这N个国家相互连通,修建每条道路都有相应的花费.但是他们都很吝啬,于是决定只随机选出两个不同的国家(为了国家的平等,当然这两个国家是无顺序可言的),建造该建造的道路,使得这两个国家相互连通,自然费用越少越 好.然后问你,在所有情况中…
T1 Circle [问题描述] 小 w 的男朋友送给小 w 一个 n 个点 m 条边的图,并且刁难小 w 要她找出点数最少的正环. 小 w 不会做,于是向你求助. [输入格式] 第一行两个整数\(n,m\) 接下来\(m\)行,每行四个数\(u,v,a,b\),表示从\(u\)走到\(v\)的代价为\(a\),从\(v\)走到\(u\)的代价为\(b\)(算作两条不同的边).注意\(a,b\)可能为负. [输出格式] 当图中包含正环时,输出点数最少的正环(简单环)的点数. 否则输出 0 [样例…