03 2021 档案
摘要:使用两个栈进行维护 st中存储初始栈内容,并记录节点编号 minn栈中记录各个编号对应的最小值(通过继承上一个与当前值比较实现) 如何实现操作为O(1):在push&pop的同时维护minn栈 代码如下 #include<iostream> #include<cstring> #define ll
阅读全文
摘要:如题所述,无限背包问题 代码如下 #include<bits/stdc++.h> using namespace std; const int MAXN=1e5+5; const int MAXM=1e4+5; int v,n,dp[MAXN]; struct Obj { int w,v; }obj
阅读全文
摘要:懒得再写一遍高精度,就找了古早的代码改了改,那时候,我还不知道结构体,就随便看看吧 #include<iostream> #include<cstring> using namespace std; string a,b; int main() { cin>>a>>b; int c[1000],d[
阅读全文
摘要:考虑到数据量,不可能建立等长的数组(也没有意义) 需要做的只是记录最小累计值(minn),并且每读入一个值(tem)就将目前的累计值(now)与最小值比较,更小则替代,答案(ans)取当前累计值与最小值的差值 考虑到题目要求,ans小于等于0时输出Game Over 注意,以上变量都为long lo
阅读全文
摘要:我这里采用了一种比较偷懒节约空间的方法 题目要求距离的最大值,那么只要边读边判断,走到第i段时还有多少时间 Case 1:若<0那么连这一段都不能走到,输出i-1,退出程序 Case 2: >0,继续执行 Case 3:当走到路的尽头(即循环结束),都没有走完,那么输出t 代码如下 #include
阅读全文
摘要:方格取数 玄学的四维/简化后三位dp n小于等于9,狂喜,可以用一些奇奇怪怪的方法了 dp[i][j][k]代表走到(i,j)和(k,i+j-k)时可取的最大值 然后没有了 // // main.cpp // P1004 方格取数 // // Created by Yuying Xue on 201
阅读全文
摘要:所以需要建立树,记录从特定起点到某处的限重的最大值,最大生成树 //kruskal可以保证树的生成是严格按照从大到小,保证答案的正确性 查询:x,y之间的lca 没了 #include<bits/stdc++.h> const int INF=19270817; using namespace st
阅读全文

浙公网安备 33010602011771号