上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 68 下一页
摘要: 建立超级原点,将边权设为票价,其他普通边权*2 做一遍最短路即可 #include<bits/stdc++.h> #define getsz(p) (p?p->sz:0) using namespace std; typedef long long ll; typedef pair<ll,int> 阅读全文
posted @ 2020-08-10 22:23 朝暮不思 阅读(146) 评论(0) 推荐(0)
摘要: 对于自己控制和风向两种情况,我们可以发现,其实这两个是不冲突的 也就是对于风向我们是必须走的,而对于自己控制的肯定是朝最理想的状态 因此我们可以先把风向的贡献做出来,来二分天数,看看能否控制曼哈顿距离小于等于天数。 单调性的证明是,如果不可以满足条件,那么更小的天数也一定无法满足条件,因为我是最有利 阅读全文
posted @ 2020-08-10 11:03 朝暮不思 阅读(162) 评论(0) 推荐(0)
摘要: 设计dp状态为f[i][0],表示以i为根的子树中,没有节点个数大于k的 和f[i][1]表示以i为根的子树中,最多有一个大于k 之后用树形dp来做答案,这道题标程的解答写的很详细 #include<bits/stdc++.h> using namespace std; typedef long l 阅读全文
posted @ 2020-08-09 17:40 朝暮不思 阅读(168) 评论(0) 推荐(0)
摘要: 这题直觉上来说可以使用区间dp进行合法状态的转移,然后记录最小值。 现在的问题是这个是个无限长度的串,因此我们可以大胆猜测,只需要其中一部分就能把所有的情况构造出来 经过打表处理后发现,只需要前13个以内就能构造出所有合法状态,因此只需要这样区间dp即可 #include<bits/stdc++.h 阅读全文
posted @ 2020-08-07 11:11 朝暮不思 阅读(340) 评论(0) 推荐(0)
摘要: 这道题的边权是2的幂次,显然我们发现边权前面所有边相加都不如这条边长,因此其实本题的最短路径就是最小生成树 之后对于答案只需要计算每条边的贡献即可 #include<bits/stdc++.h> #define getsz(p) (p?p->sz:0) using namespace std; ty 阅读全文
posted @ 2020-08-07 09:38 朝暮不思 阅读(217) 评论(0) 推荐(0)
摘要: 对于这一类转移次数很多的,肯定是考虑矩阵快速幂比较有效 对于状态设计,就是把有用的状态和常数放到状态矩阵中 然后构造出转移矩阵,对于本题因为p/n的答案不定,所以考虑整除分块后,分块求取答案 #include<bits/stdc++.h> #define getsz(p) (p?p->sz:0) u 阅读全文
posted @ 2020-08-06 19:31 朝暮不思 阅读(130) 评论(0) 推荐(0)
摘要: 这题设计二维状态f[][]表示前i个里面有几个0,假设数列中总共有cnt个0最后答案就是操作k次后前i个里面有cnt个0/所有情况 因为k十分巨大,所以考虑使用矩阵快速幂加速dp 对于矩阵状态的设计,就是看看转移状态,发现转移状态只是一个常数,因此列出矩阵后做一遍快速幂即可 #include<bit 阅读全文
posted @ 2020-08-06 11:20 朝暮不思 阅读(151) 评论(0) 推荐(0)
摘要: 考虑每个点的贡献,每个点能够成为联通区块的左端点的个数就是他能给答案带来的贡献 如果a[i-1]>a[i],那么根据乘法原理贡献为(a[i])*(a[i-1]-a[i]) 如果a[i-1]<a[i],那么根据乘法原理贡献为(a[i]-a[i-1])*(n-a[i]+1) #include<bits/ 阅读全文
posted @ 2020-08-05 10:11 朝暮不思 阅读(116) 评论(0) 推荐(0)
摘要: 只是转化成树上问题, 同样是动态开点维护 #include<bits/stdc++.h> #define getsz(p) (p?p->sz:0) #define getlsz(p) (p?getsz(p->ls):0) #define getl(p) (p?p->ls:0) #define get 阅读全文
posted @ 2020-08-04 22:11 朝暮不思 阅读(130) 评论(0) 推荐(0)
摘要: 这道题我们发现固定一个端点,那么和他不同的或值答案就是不超过log个,因为就算每个只少一个0,那也只有20位 现在的问题是如何去重,采用的方法是对于每个右端点,用mp查找与他或起来的不同值,绑定一个三元组表示或值为u的键值对为i,j,这里我们可以覆盖掉一些被包含的点,因为不可能成为答案 之后继续去重 阅读全文
posted @ 2020-08-03 23:21 朝暮不思 阅读(232) 评论(0) 推荐(0)
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 68 下一页