传送门 感觉这题的思路还是挺不错的.然而为啥全网就一个题解而且只有代码……然后我只好看着代码理解了好久…… 题意就是有一棵树,每一个节点向他父亲节点连边,且有一个容量表示每一秒可以经过的牛的数量,每一个点有一堆牛,在满足容量限制的情况下可以不断往祖先跳直到跳到1节点.然后问你在保证总时间最短的情况下第$t$秒1节点有多少头牛 首先,不难发现一个贪心,就是如果向父亲的边能够流满的时候,流满一定比不流满优 那么我们令每一条边都强制流满,然后对每个点记录一个值$pass[i]$,值为它能向父亲流的最大…
大模拟好啊! 万一远古计算机让我写个解释器还真是得爆零了呢. 题目背景 「千歌です」(我是千歌).「曜です」(我是曜).「ルビィです」(我是露比).「3人合わせて.We are CYaRon! よろしくね!」(三人在一起,我们是CYaRon!多多指教哦!) CYaRon!的三人在学习了编程之后,决定发明一种自己的编程语言,她们称为CYaRon!语. (ltt: 明明是我帮她们发明的.) 可是,因为洛谷评测机这时候突然爆了,ltt没有时间再帮CYaRon!的三位小姐姐写CYaRon!语的解释器了.…
次元传送门:洛谷P1065 思路 简单讲一下用到的数组含义 work 第i个工件已经做了几道工序 num 第i个工序的安排顺序 finnish 第i个工件每道工序的结束时间 need 第i个工件第j道工序需要的机器 tim 第i个工件第j道工序需要的时间 mac 第i个机器的状态 我们遍历时间线找出可以安排下去的工序就安排下去即可 (因为输入已经满足最优) 代码 #include<iostream> using namespace std; #define maxn 25 int work[m…
题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上:其他堆上取的纸牌,可以移到相邻左边或右边的堆上. 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多. 例如 N=4,4 堆纸牌数分别为: ①9②8③17④6 移动3次可达到目的: 从 ③ 取 4 张牌放到 ④ (9…
P3378 [模板]堆 160通过 275提交 题目提供者HansBug 标签 难度普及- 提交  讨论  题解 最新讨论 经实际测试 堆的数组开3000- 题目有个问题 为什么这个按课本堆标准打的- 题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下…
P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. 输入输出格式 输入格式: 四行字符,由大写字母组成,每行不超过72个字符 输出格式: 由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的.在任何一行末尾不要打印不需要的多余空格.不要打印任何空行. 输入输出样例 输入样例#1: 复制 THE QUICK BROWN FOX JUM…
P1055 ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码.ISBN码的首位数字表示书籍的出版语言,例如0代表英语:第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社:第二个分隔符后的五位数字代表该书在该出版社的编号:最后一位为识别码. 识别码的计…
题目背景 人工神经网络(Artificial Neural NetworkArtificialNeuralNetwork)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的入门书籍后,提出了一个简化模型,他希望你能帮助他用程序检验这个神经网络模型的实用性. 题目描述 在兰兰的模型中,神经网络就是一张有向图,图中的节点称为神经元,而且两个神经元之间至多有一条边相连,下图是一个神经元的…
<题目链接> 题目描述 给定一个 N 个点, M 条有向边的带非负权图,请你计算从 S 出发,到每个点的距离. 数据保证你能从 S 出发到任意点. 输入格式: 第一行为三个正整数 N,M,S . 第二行起 M 行,每行三个非负整数 ui, vi, wi,表示从 ui到 vi​ 有一条权值为 wi​ 的边. 输出格式: 输出一行 N 个空格分隔的非负整数,表示 S 到每个点的距离. 1<=N<=100000 1<=M<=200000 解题分析: 由于n和m的数据太大,所以…
题目描述 在艾泽拉斯,有n个城市.编号为1,2,3,...,n. 城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量. 每次经过一个城市,都会被收取一定的过路费(包括起点和终点).路上并没有收费站. 假设1为暴风城,n为奥格瑞玛,而他的血量最多为b,出发时他的血量是满的. 歪嘴哦不希望花很多钱,他想知道,在可以到达奥格瑞玛的情况下,他所经过的所有城市中最多的一次收取的费用的最小值是多少. 题目分析 题目说了那么多,其实就是让求在角色不死亡的情况…
题意 题目链接 Sol 跟我一起大喊:n方过百万,暴力踩标算! 一个很显然的思路是枚举\(H, S\)的最小值算,复杂度\(O(n^3)\) 我们可以把式子整理一下,变成 \[A H_i + B S_i \leqslant C + AminH + BminS\] 首先按\(H\)排序 考虑去从大到小枚举\(AminH\),同时用个vector \(n^2\)维护\(S\)序列(直接\(lowerbound + insert\)) 再从大到小枚举\(BminS\),同时用堆维护\(AH_i + B…
如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 操作1: 1 x 操作2: 2 操作3: 3 输出格式: 包含若干行正整数,每行依次对应一个操作2的结果. 输入输出样例 输入样例#1: 复制 5 1 2 1 5 2 3 2 输出样例#1: 复制 2 5 说…
题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 操作1: 1 x 操作2: 2 操作3: 3 输出格式: 包含若干行正整数,每行依次对应一个操作2的结果. 输入输出样例 输入样例#1: 5 1 2 1 5 2 3 2 输出样例#1: 2 5 说明…
传送门 解题思路 第一种: 对于选i家,很显然,a值前i-1家的一定会选,所以只需要考虑最后一家的选法.要么是选择a值第i大的(就不管s了),要么选择剩下的中s最大的. 我们把每一家的情况(s和a)存入几个结构体中,按照a的值从大到小排序,再用sum求出a的前缀和,用maxs[i]表示前i家中最大的s,用maxa[i]表示在i...n家中选一家的最大价值,即(s*2+a)的最大值. 然后对于要求的每一个i,ans[i]就是 选a值最大的前i家 选a值最大的前i-1家加上剩下的i...n家中贡献最…
嗯... 题目链接:https://www.luogu.org/problem/P1981 这道题其实是数组模拟栈.首先处理乘法:注意从后往前处理,处理后归零.然后把数都加起来即可. AC代码: #include<cstdio> #include<iostream> using namespace std; ]; ]; int main(){ ; ; cin >> a[cnt]; a[cnt] %= ; while(cin >> c[cnt]){ cin &…
题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”. 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱.在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图111).有经验的多多一眼就能看出,每棵花生植株下的花生有多少.为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生:然后再找出剩下的植株里花生最多的,去采摘它的花生:依此类推,不过你一定要在我限定…
题目列表 注明:Level值代表在本难度下的排行.(纯粹本蒟蒻主观评判)注明:Level值代表在本难度下的排行.(纯粹本蒟蒻主观评判)注明:Level值代表在本难度下的排行.(纯粹本蒟蒻主观评判) P1003 铺地毯 P1067 多项式输出 P1540 机器翻译 P1056 排座椅 P1328 生活大爆炸版石头剪刀布 P1563 玩具谜题 其中第5题个人跳过了. 铺地毯 题目链接 大体思路:因为靠后的地毯会优先覆盖,倒序遍历判断点是否在地毯中即可. 难度:普及- Level:3Level:3Le…
题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=2^10 +2^8 +2^5 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+2…
P1914 小书童——密码 题目背景 某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你. 题目描述 蒟蒻虽然忘记密码,但他还记得密码是由一串字母组成.且密码是由一串字母每个向后移动n为形成.z的下一个字母是a,如此循环.他现在找到了移动前的那串字母及n,请你求出密码.(均为小写) 输入输出格式 输入格式: 第一行:n.第二行:未移动前的一串字母 输出格式: 一行,是此蒟蒻的密码 输入输出样例 输入样例#1: 复制 1 qwe 输出样例#1: 复制…
https://www.luogu.org/problemnew/show/P1981 (原题链接) 显然乘法的优先级高与加法,因此碰到乘号就要优先把一连串与乘号相连的数算出,很容易想到递归.可用普通的“从头扫到尾”的方法,以加号.乘号.及字符串尾的结束符(‘\0’)为间隔读入数字(因结尾没有符号,所以别忘了若不特别处理结尾,循环过完后会不处理最后读入的数). 因数据会很大,题目善良的说“注意:当答案长度多于 4 位时,请只输出最后4 位,前导0 不输出”,有了这句话,我们的运算就只有后四位有关…
最近这段时间感冒外加一些乱七八糟的事情,导致脑子严重僵化……只好刷刷基础(水)题巩固巩固基础(混混题数). 目录 P1003 铺地毯 P1067 多项式输出 P1540 机器翻译 P1056 排座椅 P1328 生活大爆炸版石头剪刀布 P1563 玩具谜题 P1003 铺地毯 #include<bits/stdc++.h> using namespace std; ; int n,x,y; int a[maxn],b[maxn],g[maxn],k[maxn]; int main() { sc…
题目传送门 降雨量 题目背景 07四川省选 题目描述 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2004和2005年的降雨量分别为4920,5901,2832和3890,则可以说“2005年是自2003年以来最多的”,但不能说“2005年是自2002年以来最多的”由于有些年份的降雨量未知,有的说法是可能正确也可以不正确的. 输入输出格式 输入格式: 输入仅一行包含一个正整数n…
给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和. 输入输出格式 输入格式: 集合中的元素(元素<=1000) 输出格式: 和 输入输出样例 输入样例#1: 2 3 输出样例#1: 10 说明 子集为: [] [2] [3] [2 3] 2+3+2+3=10 保证结果在10^18以内. [分析]非常容易推导出,每个元素在集合中总共出现了2^(n-1)(n指集合中元素的个数)次,以样例为例: 可以很容易的发现每个元素在集合中都各出现了2^(2-1) = 2次.如此,我们得到一个…
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势: 斯波克:<星际迷航>主角之一. 蜥蜴人:<星际迷航>中的反面角色. 这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果. 现在,小A 和小B 尝试玩这种升级版的猜拳游戏.已知他们的出拳都是有周期性规律的,但周期长度不一定相等.例如:…
世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,AA市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150\%150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m \times 150\%m×150% (向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有 选手. 现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成 绩. 输入输出格式 输入格式: 第一行,…
有些细节需要注意: 1.编号和元素种类都从0开始标号. 2.需要特判一下队列被弹空的情况. Code: #include<cstdio> #include<cstring> using namespace std; const int maxn = 1000000 + 4; int typ[maxn], tail[maxn]; int head[maxn], nex[maxn], cur[maxn], cnt, back; int main() { // freopen("…
嗯... 题目链接:https://www.luogu.org/problemnew/show/P3009 这是DP的另一个功能,求最大子段和(最大子段和模板:https://www.luogu.org/problemnew/show/P1115),动态转移方程为: dp[i] = max(a[i], dp[i - ] + a[i]); AC代码: #include<cstdio> #include<iostream> #include<algorithm> using…
分析 求因数5的个数 AC代码 #include<iostream> using namespace std; int main() { long long n,t,ans=0,s=0; cin>>n; for(int i=1;i<=n;i++) { t=i; while(t%5==0) s++,t/=5; ans+=s; } cout<<ans<<endl; return 0; }…
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@.'@'为表达式的结束符号.'.'为操作数的结束符号. 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值 输入输出样例 输入样例#1: 3.5.2.-*7.+@ 输出样例#1: 16 说明 字符串长度,1000内. 只要用STL sta…
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P1619 写完后我觉得我该告诉大家的第一句话就是: 不要深夜在洛谷写这种蓝色难度的模拟题(当然您如果够神写深蓝色难度的也是体会不到我这种蒟蒻今晚尝到的痛苦的.) 这题写的我真是有一种"日了出题人亲娘"爽快的感觉 换行就是这题最难的模拟,一下要换,一下不要换,特殊情况要特判. 然后判质数和分解质…