http://codeforces.com/contest/789/problems
A. Anastasia and pebbles
题意:Anastasia有两个口袋,她一次最多可以放k个物品到这两个口袋中,每个口袋只能放同一种类的物品。由于她很忙,所以她一天只能放一次,求她最少需要放多少天。
解法:随意模拟一下就好了。
但问耕耘,莫问收获
http://codeforces.com/contest/789/problems
题意:Anastasia有两个口袋,她一次最多可以放k个物品到这两个口袋中,每个口袋只能放同一种类的物品。由于她很忙,所以她一天只能放一次,求她最少需要放多少天。
解法:随意模拟一下就好了。
题面:http://codeforces.com/contest/1066/problems
题意:需要回答一系列的query。给定L, v, l, r, 已知每隔距离v会有一盏灯。上限为L。且l和r之间没有灯。问你总共有多少盏灯。
解法:由于L的范围到达$1e9$,query个数也到达$1e4$, 暴力肯定不可行。
所以只需要计算1-L间的灯的个数减去[l, r]区间内的灯的个数即可。
题面:http://codeforces.com/contest/787/problems
异常难打的一场cf啊…C题就开始看题解了..D题是线段树建图+Dijkstra…等我以后熟练掌握了线段树再补吧orz
题意:给定a.b.c.d, 甲在每个$ b + a \cdot i $时刻尖叫, 乙在每个$ d + c \cdot i $时刻尖叫, 问是否存在两者同时尖叫的时刻。
解法:暴力 or 扩展欧几里得
题面:http://acm.hdu.edu.cn/showproblem.php?pid=2376
题意:计算树上任意两点距离和的平均值。
解法:树形dp
这是一个简单基础经典的树形dp。
我们考虑计算每条边的贡献,对于一条边u->v假设u的一侧有m个结点,v的一侧有n个结点,那么这两边的结点要想互通,必然要经过这一条边,所以这一条边的贡献就是m乘以n。
所以我们只需要一遍dfs,计算出每条边的贡献和即可。
具体来说,我们需要记录每个结点为根的子树所含结点i个,那么另一侧的结点个数必然是n-i个,每次相加即可。
我们把所有边的贡献求总和,再除以总路径数N * (N - 1) / 2,即为最后所求。
题面:http://codeforces.com/contest/791/problems
题意:一个数第二天是第一天的3倍,另一个数第二天是第一天的2倍,问什么时候第一个数大于第二个数。
解法:模拟