摘要:
题目链接:https://www.luogu.com.cn/problem/P1024 首先在(-100,100)上暴力枚举,如果有f(i)*f(j)<=0,那么答案一定在[i,j]上,在这里记录下f在[i,j]上的单调性,进行二分。二分结束后继续在(ans,100)上暴力枚举,重复是上述操作。 A 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1351 有n个点,n-1条边,所以是一个无根树。而两点之间的距离为2,所以两点之间有一个中转点,这道题的关键就是枚举这个中转点,而不是两个顶点。 这样每次枚举一个中转点,便枚举与它相邻的所有点,记录下其中最大的、次大的两 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1073 DFS+DP: 设f[i][0/1], f[i][0]表示走到i点的最小价格,f[i][1]表示走到i点的最大收益(差值)。转移过于简单。 注意DFS中的剪枝。 AC代码: 1 #include<cstdio> 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1052 方程比较好像: 设f[i]表示跳到第i个点的最少石子数。 那么f[i]=min(f[i],f[i-j]+vis[i]),vis[i]代表第i个点有没有石子,s<=j<=t。 但是这样的话f的下标大小应为1e9,显 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1396 注意要用双向边!! 1.二分+DFS: 二分路径最大值,然后DFS,如果边权小于mid,那么可以走,否则不可以走。DFS只需要判断s->t是否连通:跑一边DFS,然后用vis看能否连通。 1 #include<c 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1807 因为并没有保证1点的入度没有保证为0,所以先将所有的点的dis为0xc0,然后dis[1]=0,dis[n]=-INF。将所有连向1的点的w都设为-100001,这样拓扑到1这个节点时,dis就会被更新为0,然后 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1137 在有向无环图上,用拓扑排序在O(n)的时间内求出最短/长路,是一个不错的选择(也称拓扑的DP)。 只需要在拓扑排序中让连的点的入度--时更新dis即可。这道题里注意一开始每一个城市都可以以自己为终点到达自己一个, 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1006 思想同P1004完全相同: P1004:https://www.luogu.com.cn/problem/P1004 思路:https://www.cnblogs.com/New-ljx/p/13866374.h 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1004 考虑让两个人同时走,设计状态则直接设f[i][j][k][m],表示第一个人走到(i,j),第二个人走到(k,m)时所取数的最大值。 当(i,j)==(k,m)时,即两个人走到同一个点,则这个点其实在第二遍的时候 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P5664 观察题目数据范围,发现前64pts可以用类似状压的思想来做(m<=3)。前84pts可以在O(n^3*m)的时间内完成。100pts需要在O(n^2*m)的时间内做。 总述: 注意总的初始化,初始化要为1,因为后 阅读全文