2022年10月23日
摘要: 给一个序列划分为若干组,每组的和 S>=0, 问方案数 首先是暴力dp for(i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i]; f[0]=1; for(i=1;i<=n;i++) for(j=0;j<i;j++) if(s[i]>=s[j]) f[i]+=f[j] 阅读全文
posted @ 2022-10-23 23:42 towboat 阅读(13) 评论(0) 推荐(0)
摘要: 逆序对的本质是二维偏序 给第一维排序(输入时已排好), 统计 y(k)>=y(i) k<i (或者 y(k)<=y(i) ,k>i ) 用树状数组维护 y 值 前缀和 该题需要离散化这个y ,再作为树状数组的下标 第一种 y(k)<=y(i) ,k>i #include <iostream> #in 阅读全文
posted @ 2022-10-23 22:25 towboat 阅读(20) 评论(0) 推荐(0)
摘要: 小 A 和小 B 在玩游戏。 初始时,有 nn 个硬币被摆成了一行,从左至右数第 ii 个硬币的价值为 c_ici​。 小 A 和小 B 每人一回合,在一个人的回合中,他可以选择当前硬币序列最左侧或者最右侧的硬币,并将他从序列中取出,将其价值累加到自己获得的累计价值中,然后进行另一个人的回合。当硬币 阅读全文
posted @ 2022-10-23 20:11 towboat 阅读(20) 评论(0) 推荐(0)
摘要: n个男生,m个女生排成一排,要求任意子段 中男女生的个数差 <=K 方案数? f[i][j][k][l] 目前i个男生,j个女生,个数差值为 k 和 l 转移很明显, 但最好用刷表法 #include <iostream> #include <cstring> #include <cmath> us 阅读全文
posted @ 2022-10-23 17:26 towboat 阅读(23) 评论(0) 推荐(0)
摘要: #include <iostream> #include <cstring> #include <cmath> using namespace std ; const int N=203; #define int long long int a[N],b[N],n,m,f[N][2002]; int 阅读全文
posted @ 2022-10-23 14:20 towboat 阅读(11) 评论(0) 推荐(0)
摘要: 科罗拉多州的山脉是二维平面上的一条折线。这条折线由 NN 个端点,N−1N−1 段线段组成,第 ii 个端点的横坐标就是 ii,纵坐标是 H_iHi​,纵坐标代表高度,也可以称为海拔。 罗恩打算为奶牛建造一个滑雪场,为此要在山脉上规划一条缆车线路。缆线也是一条折线,由若干段缆绳组成,起点在山脉的第一 阅读全文
posted @ 2022-10-23 13:32 towboat 阅读(15) 评论(0) 推荐(0)
摘要: 给树的点染色,颜色有3种,相邻的点颜色不同 某些点已经染色 方案数? #include <bits/stdc++.h> using namespace std ; const int N=1e5+2,M=5*N; #define int long long const int mod=1e9+7; 阅读全文
posted @ 2022-10-23 11:40 towboat 阅读(17) 评论(0) 推荐(0)
摘要: 奶牛从井(H) 里往上爬,初始能量10, 有n个物品,可以用来堆叠(h[i]) 或者补充能量( w[i] ), 出现的时刻tm[i] 奶牛逃出去最少花费时间? 状态 f[i][j] 前i个物品, 此时高度为j 时 ,最大的能量 【因为高度范围明显(划掉 转移方程 f[i][j] = max( f[i 阅读全文
posted @ 2022-10-23 10:52 towboat 阅读(16) 评论(0) 推荐(0)
摘要: 对每个i ,从 a[i] b[i] 选一个 若选择 a[i] ,不贡献答案; 否则答案+1 在 sum{ a } -sum{ b } 最小的前提下,求出最小的答案 背包 #include <iostream> #include <algorithm> #include <cstring> using 阅读全文
posted @ 2022-10-23 00:24 towboat 阅读(20) 评论(0) 推荐(0)