思维题
Dilly__dally
这个作者很懒,什么都没留下…
展开
-
AtCoder 2152
题意:学姐很喜欢吃糖果(毕竟是女生嘛),所以学姐收藏了很多种糖果,分别放在了n个盒子里面并且从左到右每个盒子里面的的糖果个数为a1,a2,,,an;学姐很喜欢玩儿,所以在吃糖果的时候也不闲着,她每次选择一个包含至少一个糖果的盒子,然后在所选盒子里吃掉一个糖果,她的目标是吃糖果吃到使任意两个相邻盒子里的糖果数和最大为x,但是吃太多糖果会发胖,所以学姐现在请你们求出学姐要吃的最少的糖果个数。这个题容易...原创 2018-05-23 15:54:29 · 201 阅读 · 0 评论 -
CF 867E buy Low Sell High(贪心+优先队列)
题意: 给定n天,每天有个价格,可以买一个物品,可以把手中的物品卖掉 思路: 首先假设每一天都买了东西,即把它push进优先队列,如果当天价格大于对头(最小的),ans就加上他们的差价,再把当天的价格push进去(这一步非常重要,以免后面有更高的价格可以买当天的东西,这一步也就等价于一个中间物体) #include<bits/stdc++.h> using namespace...原创 2018-08-25 22:05:45 · 347 阅读 · 0 评论 -
ZOJ 4054 Traveling on the Axis(思维+贡献法)
题意: 在[0,n]中每0.5处设置一个红绿灯,0表示红灯,1表示绿灯,如果在4.5处有红灯,要从4到5,就要等1s,给出初始的红绿灯状态,每1s会改变状态,即由红灯变成绿灯,或绿灯变成红灯,然后计算图中表达式。 (数轴上任意两点花费时间之和) 思路: 可以知道,如果忽略等待的时间,那么上式的值就是1*n+2*(n-1)+3*(n-2)+……+n*1。可以这样理解:从0到1,从1到2...原创 2018-09-19 12:18:38 · 215 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) A(思维)
题意:找1~L之间 v 的倍数的个数,在区间[l,r]之间的不能算 思路:1到n之间v的倍数个数为n/v向下取整,因为是闭区间,所以区间里v的倍数个数为r/v-(l-1)/v,l为什么要减一?因为l-1/v是1到l-1中v的倍数个数。 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #defi...原创 2018-10-15 19:57:54 · 143 阅读 · 0 评论