摘要:
可以变换坐标:x' = x, y' = y - x ^ 2,如此之后可得线性函数x' * b + c = y',可以发现两点连边为抛物线,而其他点都在这条线下方才满足题意,故而求一个上凸壳即可。 阅读全文
摘要:
1.先预处理出在循环中某数前面的数是谁。 2.读入a数列时贪心选取最晚的父亲。 3.链上倍增预处理二进制祖先。 4.对于每个位置,预处理第n-1个祖先位置最早要从哪里开始,技巧上再顺手与前一位的最早位置取max,尽量缩小区间。 5.查询已经可做。 阅读全文
摘要:
队友和大佬都什么几种情况啥的……我是把终点都插了,起点随便选一个,暴举答案莽A。 阅读全文
摘要:
怎么就没人解释一下为啥用b排序可以保证正确性呢……太菜了,理解了好久。 时间流逝价值会丢失的背包,类似题洛谷1417 本题与洛谷1417不同之处在于流逝是有截止的。 1.这个dp[j]的含义是:最后跑路时欠了j个费所得到的最大钱数。 2.假设是不排序的,直接去背包,考虑两种转移,一种是选了当前这个以 阅读全文
摘要:
听队友说过结论:a^n + b^n = c^n在n > 2时无解。 勾股那里本菜数学不好直接暴举了Orz。 跟大家学一波勾股数的构造:a是奇数时,tmp = a / 2; b = (tmp + 1) * tmp * 2; c = b + 1; 举例:5、12、13. a是偶数时,tmp = a / 阅读全文
摘要:
题目传送 官方题解 A.官方说是随机数据所以暴力线段树…… #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; int N, L; class SegmentTree { public: #define ls 阅读全文
摘要:
笔者休息娱乐。 阅读全文
摘要:
这个数位dp倒是没什么限制条件,只是需要在过程中把每个数字出现次数记录一下即可。记忆化返回时数学算出。框架还是套板子。 阅读全文
摘要:
数位dp第二道~就当成搜索,套板子写了写。我写的dp[pos][pre][state0]记录的是当前pos位没有限制时、前面的数是pre时、前面是否都是0时的方案数。 阅读全文
摘要:
喜闻乐见的数位入门第一道,这个dp[pos][state]记录的是第pos位如果没有限制的话(有限制当然要搜一搜暴力数了),前一位 放6 or 不放6 的方案数。也就是并不是要求的答案,其实就是记忆化一下,减小搜索的复杂度,跟dp没啥关系吧…… 阅读全文