03 2021 档案

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