hdu 6544~6554
1.Ticket
签到题
/**/
#include
#include
#include
#include
#include
#include
#include
2.Gcd
从1~n可以组成[1,(n+1) * n / 2]中的任意一个数,那么把它分成两部分时,正好等分的时候gcd最大,比如和为9时,等分为3,6时gcd最大。那么问题转换为求和((n + 1) * n / 2)的最小因子,直接暴力枚举即可,我潜意识中认为不需要枚举多少个数即可得出答案,但是不会证明。
/**/
#include
#include
#include
#include
#include
#include
#include
3.Function
首先看假设先取每个二次函数对称轴附近的最小值的点设为xi,如果,那么对于需要对于某些函数的x取值加值,用优先队列维护增量(对于ax^2+bx+c而言,若换成a(x+1)^2+b(x+1)+c,只需要在原来的基础上加上2ax+b即可),对于和大于m的而言,减去增量最多的可使得ans最小。
/**/
#include
#include
#include
#include
#include
#include
#include
4.Tree
树链剖分模板题,对于区间修改设置一个num数组统计有多少个1,对于更新操作若num[rt] == tr[rt],说明区间里都是1或者0,不需要更新。
/**/
#include
#include
#include
#include
#include
#include
#include
5. Checkout
待补
6. String(已修改,现在正确)
一道莫名AC的dp
dp[i][j][k]表示在当前位置i时,分成j段,当前位置为字母k时最小需要多少次修改次数
num[i]用来记录不同数字个数
/**/
#include
#include
#include
#include
#include
#include
#include
7.Circle
根据数学知道易得当平分两个平分点时面积最大
/**/
#include
#include
#include
#include
#include
#include
#include
8.Clock
把所有时间转化成角度,1s是6度,那么12小时为259200
从小到大排序所有角度
1.对于当前指的时间比a[1]小
2.对于当前指的时间比a[n]大
3.对于当前指的时间在a[1]~a[n]之间
对于每一种情况分别枚举每一个点,考虑顺,逆,先顺再逆,先逆再顺4种情况。
/**/
#include
#include
#include
#include
#include
#include
#include
9.Union
待补
10.Tangram
拿笔画画可以看出加一根线时+6,两根线时再+7,三根时再+8.....
/**/
#include
#include
#include
#include
#include
#include
#include
11.Tetris
可以发现样例给你的就是最小符合情况,也就是说如果行和列都是4的倍数时才满足,否则no response,然后复制复制复制。。。
/**/
#include
#include
#include
#include
#include
#include
#include