首页 > 其他分享 >Fabricating Sculptures 题解

Fabricating Sculptures 题解

时间:2022-10-21 21:57:10浏览次数:63  
标签:const Sculptures int 题解 LL sum2 sum1 Fabricating

草草地写一篇题解,废话不多说

暴力

要拼成“^”型,考虑 \(DP\)

令 \(f_{i,j}\) 表示,总共有 \(i\) 个积木,其中底座占了 \(j\) 个积木,也就是说你还有 \(i-j\) 个积木来拼底座的上方。

转移方程:\(f_{i,j} = \sum\limits_{k=1}^{j} f_{i-j,k} (j-k+1)\)

初始化:\(f_{1,1}=1, f_{i,i}=1\),其中 \(i \le m\)

代码如下

#include <iostream>

using namespace std;

const int N = 5010;

int n, m;
int f[N][N];

int main()
{
	cin >> m >> n;
	f[1][1] = 1;
	for (int i = 1; i <= m; i ++ ) f[i][i] = 1;
	for (int i = 2; i <= n; i ++ )
	{
		for (int j = 1; j <= min(i - 1, m); j ++ )
		{
			for (int k = 1; k <= j; k ++ )
			{
				f[i][j] += f[i - j][k] * (j - k + 1);
			}
		}
//		if (i <= m) f[i][i] = 1;
	}
	cout << f[n][m] << endl;
}

然而 \(TLE\) 了。

前缀和优化

令 \(sum1_{i,j} = \sum\limits_{j=1}^m f_{i,j},\ sum2_{i,j} = j\sum\limits_{j=1}^m f_{i,j}\)

那么新的状态转移方程变成了:\(f_{i,j} = (j+1)sum1_{i-j,j} - sum2_{i-j,j}\)

#include <iostream>

using namespace std;

typedef long long LL;
const int N = 5010;
const LL mod = 1e9 + 7;

LL n, m;
LL f[N][N], sum1[N][N], sum2[N][N];

int main()
{
	cin >> m >> n;
	f[1][1] = 1;
	for (int i = 1; i <= m; i ++ ) f[i][i] = 1;
	for (LL i = 1; i <= n; i ++ )
	    sum1[1][i] = sum2[1][i] = 1;
	for (LL i = 2; i <= n; i ++ )
	{
	    for (LL j = 1; j <= min(i - 1, m); j ++ )
	        f[i][j] = ((j + 1) * sum1[i - j][j] - sum2[i - j][j]) % mod;
//		if (i <= m) f[i][i] = 1;
	    for (LL j = 1; j <= m; j ++ )
	    {
	        sum1[i][j] = (sum1[i][j - 1] + f[i][j]) % mod;
	        sum2[i][j] = (sum2[i][j - 1] + f[i][j] * j) % mod;
	    }
	}
	cout << f[n][m] << endl;
}

标签:const,Sculptures,int,题解,LL,sum2,sum1,Fabricating
From: https://www.cnblogs.com/LittleMoMol-kawayi/p/Gym_solution_Fabricating-Sculptures.html

相关文章

  • CF1716C Robot in a Hallway题解
    \(2000\)分的DP题。题意给定一个\(2\)行\(n\)列的网格。机器人初始坐标为\((0,1)\),每一秒都可以向四周移动。每个格子有解锁时间,在该时间之前机器人不可以进入该......
  • CF1045G 题解
    前言题目传送门!更好的阅读体验?和模版稍有不同的cdq分治。思路cdq是离线算法,所以我们可以先给\(x_i\)离散化一下。同时,记录下\((x_i-r_i)\)与\((x_i+r_i)......
  • 关于LoRa常见问题解答
    前面的文章中,小编有写过LORA技术低功耗广域网络,在大大小小的行业活动中,一直都是物联网的一个热门话题。LoRa主要在全球免费频段运行,包括433、868、915MHz等。后来有很多......
  • 「题解」Codeforces 1730F Almost Sorted
    给定一个长度为\(n\)的置换\(p\),以及一个正整数\(k\).对于一个置换\(q\),要求对于所有满足\(1\leqi<j\leqn\)的\(i,j\),有以下不等式成立:\[p_{q_i}\leqp_{q_j}+......
  • accoders NOI #5014. 树上询问(query) 题解
    昨天刚刚做过一道类似的题,没想到在模拟赛当中出现了。题目描述有一棵\(n\)个结点的树,有\(m\)次询问,每次询问给你两个整数\(l,r\),问存在多少个整数\(k\)使得从\(l......
  • 顺丰科技智慧物流校园技术挑战赛 一份题解
    我只是做了代码裁缝的角色罢了目录​​试题地址​​​​1​​​​2​​​​3​​​​4​​​​5​​试题地址​​https://leetcode.cn/contest/sf-tech/​​1DFS判定有向图......
  • 题解 P5527 [Ynoi2012] NOIP2016 人生巅峰
    人生第一道Ynoi,同时也是1k通过。不卡常不难写,小清新Ynoi真的不多见了。前置知识:抽屉原理,树状数组,bitset,动态规划基础。首先考虑一个事实,当这个区间够长是必然有解的......
  • CF645E Intellectual Inquiry 题解
    传送门|无耻地宣传我的博客(矩乘代码在最后)看一眼题,没什么思路,那大概就是个dp了。先求已知序列的方案数。考虑怎么设计状态。因为本质不同,如果设\(f[i]\)表示,......
  • electron升级到20版本后,禁用第三方cookie、跨域问题解决方法
    最近公司的electron项目从13升级到最新的20版本,导致qq登录失效问题,特此记录1.qq扫码登录失效升级后之前的老版本可以扫码登录,但是新版本扫码登录后,页面直接刷新,没有登录......
  • P8251 [NOI Online 2022 提高组] 丹钓战 题解
    本文写于2022-03-2614:45:14。原博客地址题目链接算法(倍增)$O((n+q)\logn)$为简便,把元素$(a_i,b_i)$称为元素$i$。对一个区间$[l,r]$模拟一遍,从空栈开始,头......