随笔分类 - 题型总结
摘要:没有一次AC的题: P3958——奶酪 这个题之前做了,当时卡在40分过不去。 当时没记错的话,是因为这道偏几何题(?)边界判断不太一样,还有有球和面的相切关系。 一些不会的知识其实可以转化成模拟过程。 P3956——棋盘 在染色魔法这个问题上,没有考虑到一些特殊的反例导致丢分。 P3951——得不
阅读全文
摘要:T1:合并石子(20min) (做了第二遍了还是有点问题,这个要注意) 用算法:从前往后找出第一个a[i]<=a[i+2]的位置,向前遍历找到比a[i]+a[i+1]大的位置停止,将这个数移到此位置后面。 用vetor数组来实现 T2:信使(30min) 图论+单源最短路问题,数据范围足够小,N3的
阅读全文
摘要:T1(30min) 上来就套着一个转化的架子,但是能看出来,转化有规律可循,就是前1后必1,有别的字母或者双l是双0,t开头只能是0,1这些(绞尽脑汁推一遍就出来了) 然后确认了以下找的规律没有问题,敲一遍模拟就过了。 T2(1h15min左右) T2是放在最后做的,原因:翻页翻过了 一看到无向图,
阅读全文
摘要:1.采药&4.开心的金明 我想把这2题放在一起来说,因为都和背包DP很像。 (应该没什么多的知识点) 用时大概每题8分钟。 2.钓鱼 这个题我一开始按照背包的模板来做,即两种向下推的方式 f[i][j]表示在i号池塘第j分钟钓到鱼的最大值 则f[i][j] = max(f[i-1][j-nxt[i-
阅读全文
摘要://看同学代码发现了神奇代码,借一下先存储一下,以后可能有用template <typename T> inline void read(T &x){x=0;char ch=getchar();bool f=0;while(ch<'0'||ch>'9'){if(ch=='-')f=1;ch=getc
阅读全文
摘要:1.FBI树(不该犯的重大问题:看清输入格式!!!) 一开始要先理清思路:对每个树结点判断F/B/I树,不会超时。 对一个01字符串,每次二分即可求得子树。 后序遍历,只需按照左-右-根的顺序建树并输出,二者可以放在同一函数里。 #include<bits/stdc++.h> using names
阅读全文
摘要:1.tree(根据先序和中序遍历输出后序遍历) 代码实现:先序遍历,根的下个一定左节点,根往下推左子树大小个一定是右节点,由此dp。 2.mix(混合背包,01背包+完全背包) 需要考虑01背包和完全背包,一种思路是用一个大数表示“可以取无数次”的物品 另一个思路,分别讨论。 我的前期思路:分别讨论
阅读全文
摘要:递推四题讲3题 划分数列 https://www.ybtoj.com.cn/contest/129/problem/5#submit_code dp(i)表示到第i个数的划分数、 再开两个数组,last_max[],last_min[],表示以i结尾的最长不上升/下降的序列起点前一位 即,用a{la
阅读全文
摘要:1.括号匹配只记录一道题,要求括号包含顺序正确{【(《形式 #include<bits/stdc++.h> using namespace std; int main(){ int top[4] = {0}; //{ [ ( < int f = 1,n; string s; cin>>n; for(
阅读全文
摘要:1.子集和问题 这个题有多个解,但题面没有明确说出需要哪组解。 此题最大不同是搜索的终止条件可以变化 注意优化,把不需要搜索的数据判断出来,直接给出No Solution的答案! #include<bits/stdc++.h> #define enter printf("\n") using nam
阅读全文
摘要:#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,p;ll m;struct node{ //save ll g[4][4];}f,res;void ORI(node &x){ //单位矩阵 for(int i
阅读全文
摘要:拔河比赛:共t组数据,每组数据有N个人,他们的体重分别是W1-Wn,现要分成两组,两组人数差最多为1,体重差最小,求最小体重差的绝对值 对于这个题,首先分析一下如何体重差最小,其实就是体重越接近体重总和一半越好,所以上来先求体重和,把关键的判断部分弄清楚: minw = min(abs(sum -
阅读全文
浙公网安备 33010602011771号