摘要:
自从某次考试写线段树写挂了以后 这是第一次写线段树,,,,,,这是一个伤心的故事…… 题意: 思路: 标记 维护从左到右的最大值 从右到左的最大值 区间内的最大值……然后就一搞 就出来了//By SiriusRen#include using namespac... 阅读全文
摘要:
从1节点最短路,,然后再乘一下权值就OK了//By SiriusRen#include #include #include #include using namespace std;#define N 132000long long d[N];int n,m,first[N],ne... 阅读全文
摘要:
这道题我拖了半年,,,终于写出来了 思路: 先反向建边 从终点做一次最短路 —>这是估价函数h(x) 再正常建边,从起点搜一遍 (priority_queue(h(x)+g(x))) g(x)是已经走过的。。思路比较简单,,, 但是我总是MLE原因:写挫了……刷了三页… ... 阅读全文
摘要:
按照题意模拟就OK了//By SiriusRen#include #include #include using namespace std;int n,t,a[1005];int main(){ scanf("%d%d",&n,&t); for(int i=1;ima... 阅读全文
摘要:
黑书原题 区间DP,递归输出 不看Discuss毁一生 (woc还真有空串的情况啊)//By SiriusRen#include #include #include using namespace std;int n,f[111][111];char s[111];voi... 阅读全文
摘要:
方法一: 二分我们可以知道 最长上升子序列的 最后一个数的值是随序列的长度而递增的 (呃呃呃 意会意会) 然后我们就可以二分找值了(并更新)//By SiriusRen#include #include #include using namespace std;int n,... 阅读全文
摘要:
匈牙利算法 裸题//By SiriusRen#include #include #include using namespace std;int n,p[8085],first[8888],next[8888],v[8888],tot,vis[8888],m,xx,yy,ans;v... 阅读全文
摘要:
题意: 思路: i表示到了i,j表示疲劳度为j f[i][j]表示能跑的最大距离 f[i][j]=f[i-1][j-1]+a[i] if(i-j>=0)f[i][0]=max(f[i][0],f[i-j][j]); f[i][0]=max(f[i][0],f[i-1][0]);/... 阅读全文
摘要:
题意: 思路: 二分+Disjktra二分一个值 如果某条边的边权比它小,则连上边权为0的边,否则连上边权为1的边最后的d[n]就是最小要免费连接多少电话线。//By SiriusRen#include #include #include #include using nam... 阅读全文
摘要:
题意: 思路:dp[i][j] 表示前i + 1个数变成单调且最后一个数是B[j],此时的最小成本dp[i][j] = min(dp[i – 1][k]) + |A[i] – B[j]| 【k = 0->j】但是我们发现现在的复杂度是O(n^3) 卡不过去怎么优化呢... 阅读全文
摘要:
题意: 思路: f[i] = min(f[j]) + 1; 2 * a #include #include using namespace std;int n,l,A,B,tot=1,xx,yy,f[1000050];struct Node{int x,y;}node[1050... 阅读全文