hdu 4655 Cut Pieces(贪心)
来源:互联网 发布:宁波seo入门教程 编辑:程序博客网 时间:2024/05/17 07:42
题目链接:hdu 4655 Cut Pieces
解题思路
同一块颜色的贡献值,我们算给最左边的位置。考虑相邻两块中后面一块的贡献值,a为i-1的颜色数量,b为i的颜色数量,除了这两块,其他位置的染色方案种数为c,那么位置i的贡献度为
a > b:那么在如果i-1的为值染色为[b+1,a]的时候,i不管为什么颜色都可以增加一点贡献值;在[1,b]的时候,i则要避开i-1的颜色才能增加一点贡献,所以总的贡献度为
a < b:不管i-1的位置染什么颜色,i的位置都要避开这种颜色才能增一点贡献,所以
代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 1e6 + 5;const int mod = 1e9 + 7;/* 相同块的贡献算给最左边*/int N, A[maxn], P[maxn];ll L[maxn], R[maxn];int solve () { L[0] = R[N+1] = 1; for (int i = 1; i <= N; i++) L[i] = L[i-1] * P[i] % mod; for (int i = N; i >= 1; i--) R[i] = R[i+1] * P[i] % mod; ll ret = R[1]; for (int i = 2; i <= N; i++) { ll tmp = (1LL * max(P[i-1], P[i])-1) * min(P[i-1], P[i]) % mod; ret = (ret + L[i-2] * R[i+1] % mod * tmp % mod) % mod;; } return ret;}int main () { int cas; scanf("%d", &cas); while (cas--) { scanf("%d", &N); for (int i = 1; i <= N; i++) scanf("%d", &A[i]); sort(A + 1, A + N + 1); int p = N; for (int i = 2; i <= N; i += 2) P[i] = A[p--]; for (int i = 1; i <= N; i += 2) P[i] = A[p--]; printf("%d\n", solve()); } return 0;}
0 0
- hdu 4655 Cut Pieces(DP 贪心)
- hdu 4655 Cut Pieces(贪心)
- hdu 4655 Cut Pieces
- HDU 4655 Cut Pieces
- HDU 4655 Cut Pieces
- hdu -4655 Cut Pieces
- hdu 4655 Cut Pieces
- HDU 4655 Cut Pieces
- HDU 4655 Cut Pieces
- hdu 4655——Cut Pieces
- hdu 4655 Cut Pieces (找规律)
- HDU Cut Pieces (计数+求逆元)
- 2013 多校第六场 hdu 4655 Cut Pieces
- HDU 5452 Minimum Cut(贪心)
- hdu 4655 Cut Pieces/杭电多校第六场1001 找规律,或者dp
- HDU 4655 2013多校联合赛第6场 Cut Pieces
- hdu(4628)Pieces
- hdu - 4628 - Pieces(状态压缩dp)
- 日经春秋 20151106
- hiho 7 完全背包
- leetcode123 Best Time to Buy and Sell Stock III
- 三星等低端手机OOM解决方法
- 图像梯度特征的常用边缘检测算子:Sobel、Prewitt、Roberts
- hdu 4655 Cut Pieces(贪心)
- linux和vxworks的实时性
- 没有BAT3级的应急响应中心,互联网公司该如何应对数据泄露事件?
- Unity3D 相同标签或同名游戏对象的逐个监测
- ViewPager 打造 图片幻灯切换
- android 存储及注意事项!(java io流,和sharedperference存储)
- Cloud Design Pattern - Compute Resource Consolidation(服务聚合)
- maven的生命周期和插件(九)
- 【DP】 BZOJ 3675: [Apio2014]序列分割