摘要: 单源最短路 朴素做法 //dijkstra算法 单源最短路 //思路 d[u]存点u到原点s的最小距离,vis[u]记录是否走过 //1.初始化 2.选一个距原点s最小的点 3.将该点相邻点改写最短距离 struct edge{ int v,w; }; const int N = 1005; vec 阅读全文
posted @ 2024-02-23 20:39 Nijika 阅读(5) 评论(0) 推荐(0)
摘要: 优先队列 priority_queue,里面有三个参数可以传递,template <typename T, typename Container=std::vector, typename Compare=std::less> class priority_queue 第一个是存储对象类型,第二个是 阅读全文
posted @ 2024-02-23 18:41 Nijika 阅读(74) 评论(0) 推荐(0)
摘要: 随机数基本使用 int a = 1; int b = 100; srand((unsigned)time(NULL)); int t = (rand()%(b-a))+a; 更好的随机数使用 #include <bits/stdc++.h> using namespace std; int main 阅读全文
posted @ 2023-12-31 11:56 Nijika 阅读(9) 评论(0) 推荐(0)
摘要: P9976 [USACO23DEC] Farmer John Actually Farms B 题目传送门 分析 首先我们可以先按,符合的位置,小到大排序,小的位置代表希望长的最高的地方 初始高度为 $ h[ i ] $ , 增长速度为 $ a[ i ] $ ,天数为 $ d $ 如果 $ h[0] 阅读全文
posted @ 2023-12-21 20:47 Nijika 阅读(18) 评论(0) 推荐(0)
摘要: P9975 [USACO23DEC] Cowntact Tracing 2 B 题目传送门 分析 需要求最少可能感染的牛,知道最终情况,那我们想一下影响感染的因素除了牛的数量还有什么? 牛的位置,感染的天数 那我们可以试试这两个能否得到? 可以发现感染的牛放中间位置就是扩散最快的,但是每个感染的牛放 阅读全文
posted @ 2023-12-21 14:52 Nijika 阅读(35) 评论(0) 推荐(0)
摘要: P9974 [USACO23DEC] Candy Cane Feast B 题目传送门 分析 我们想一下每个牛只能吃到的糖果有多少呢? 牛高为 $ni [i] $ ,糖果被吃的高度为 $ mn $ 那我们只需每次判断 $ni [i] $ 是否大于 $ mn $ ,牛低的话吃不到,牛高的话能吃的为 $ 阅读全文
posted @ 2023-12-20 21:11 Nijika 阅读(15) 评论(0) 推荐(0)
摘要: P2858 [USACO06FEB] Treats for the Cows G/S 题目传送门 分析 我们只能从左或右拿,开始想的是直接拿,然后拿到最后算结果,但是发现拿第1个的时候是左1右1,拿2个的时候也可能是左1右1左2右2,那这么多过程怎么办呢?发现行不通 我们区间是小区间最后并到大区间, 阅读全文
posted @ 2023-12-14 17:14 Nijika 阅读(17) 评论(0) 推荐(0)
摘要: 区间DP 为什么这道题可以用区间dp呢,因为我们如果在对应的位置上人都正确,从小到大,排满全部人即可 思路 平时我们遇见的区间dp题目可能都是一段加另一段,但此题我们想一下,是不是人只能从左或者右添加,所以我们只需考虑左边来的可能,和右边来的可能即可 假设我们要求 $ f[i][j] $的多少可能, 阅读全文
posted @ 2023-12-14 16:38 Nijika 阅读(2) 评论(0) 推荐(0)
摘要: 题目传送门 分析 开始想dp但是感觉又不太像,有点像贪心,开始想的是可以简化题目变成牛可以放到哪些地方吃草,牛可以吃草的区域为 $ S[$ i $] \pm K $,那我们把第一头牛直接放在 $ i + K \(的位置,发现\) i + K $的位置的牛同样可吃草,那我们只需在拿牛的时候放到最大可吃 阅读全文
posted @ 2023-12-13 20:58 Nijika 阅读(52) 评论(0) 推荐(0)