P2409 Y的积木】的更多相关文章

P2409 Y的积木 77通过 491提交 题目提供者zhouyonglong 标签云端评测 难度普及+/提高 提交  讨论  题解 最新讨论 这组数据几乎可以卡掉所有程- 第一个题解有点问题 求教大神 90分代码 就是算的分组背包时间不够,- 求解为何编译超时? 有BUG 题目背景 Y是个大建筑师,他总能用最简单的积木拼出最有创意的造型. 题目描述 Y手上有n盒积木,每个积木有个重量.现在他想从每盒积木中拿一块积木,放在一起,这一堆积木的重量为每块积木的重量和.现在他想知道重量和最小的k种取法…
luogu月赛 暴力dfs,估计过不了几个点,大概也就得30分左右? #include <bits/stdc++.h> using namespace std; const int maxn = 55; int jimu[maxn][maxn]; int cnt = 0; int ans[maxn]; int n, k; int aa[100]; int mi[maxn]; //------------ void dfs(int picked) { if(picked == n) { int…
Rank11:260=60+100+100 P2409 Y的积木 题目背景 Y是个大建筑师,他总能用最简单的积木拼出最有创意的造型. 题目描述 Y手上有n盒积木,每个积木有个重量.现在他想从每盒积木中拿一块积木,放在一起,这一堆积木的重量为每块积木的重量和.现在他想知道重量和最小的k种取法的重量分别是多少.(只要任意更换一块积木,就视为一种不同的取法.如果多种取法重量总和一样,我们需要输出多次.) 输入输出格式 输入格式: 第一行输入两个整数,n,k,意义如题目所描述. 每组数据接下来的n行,第…
E题传送门:点我 F题传送门:点我 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮料托米无法喝到. 被用于打开饮料瓶的瓶子不一定需要被打开. 一个瓶子不能打开其本身. 输入描述: 第一行一个整数n,表示饮料的瓶数.接下来n行,每行两个整数ai,bi. 输出描述: 输出一行一个整数,表示小托米无法喝到的饮料瓶数. 输入例子: 4 1 1 2 2 3 3 4 4 输出例子: 4 --> 示例…
模型: <?php namespace Admin\Model; use Think\Model; /** * 汉字转拼音 * @author huangguojin */ class ZHModel extends Model{ //utf-8中国汉字集合 private $ChineseCharacters; //编码 private $charset = 'utf-8'; public function __construct(){ if( empty($this->ChineseCha…
1109: [POI2007]堆积木Klo Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 948  Solved: 341[Submit][Status][Discuss] Description Mary在她的生日礼物中有一些积木.那些积木都是相同大小的立方体.每个积木上面都有一个数.Mary用他的所有积木垒了一个高塔.妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置.一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置…
问题:Do you remember our children time? When we are children, we are interesting in almost everything around ourselves. A little thing or a simple game will brings us lots of happy time! LLL is a nostalgic boy, now he grows up. In the dead of night, he…
P2342 叠积木 17通过 66提交 题目提供者wwqk4444 标签树状数组线段树USACO 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目背景 Cube Stacking, 2004 Open 题目描述 约翰和贝西在叠积木.共有30000块积木,编号为1到30000.一开始,这些积木放在 地上,自然地分成N堆.贝西接受约翰的指示,把一些积木叠在另一些积木的上面.一旦两 块积木相叠, 彼此就再也不会分开了,所以最后叠在一起的积木会越来越高.约翰让贝西依 次执行P条…
背景 1997年全国青少年信息学(计算机)奥林匹克竞赛试题 第二试 描述 积木游戏 SERCOI 最近设计了一种积木游戏.每个游戏者有N块编号依次为1 ,2,…,N的长方体积木.对于每块积木,它的三条不同的边分别称为"a边"."b边"和"c边" 游戏规则如下:1.从N块积木中选出若干块,并将它们分成M(l<=M<=N) 堆,称为第1堆,第2 堆…,第M堆.每堆至少有1块积木,并且第K堆中任意一块积木的编号要大于第K+1堆中任意一块积木…
B - 小Y上学记——小Y的玩偶 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小Y最喜欢拆拆拆了~尽管他不一定能装回去. 小Y有一个很可爱的积木玩偶,是由一块一块积木拼接而成,现在小Y想把这个积木玩偶拆拆拆. 每一块积木玩偶都有一个耐久值,想把一块积木拆出来,小Y需要付出的能量就是和它直接拼接的所有积木的耐…
编程.建模.制作动画和游戏--这些当初我们默认只有成年人玩得转的事情,现在早已经被无数小孩子给颠覆甚至玩出新境界了.热爱科技和动手的"创客"(Maker)现在在全世界都炙手可热.今年以来,对青少年的创客教育在中国无论是庙堂还是大众而言亦是热门话题. 从TurnipBit开始完成编程启蒙 TurnipBit是一个编程学习的入门级产品.产品本身提供一个寓教于乐的可视化编程网站入口.一个例程及资料下载网站.适合9岁以上的儿童.青少年以及编程小白亦或是硬件达人.它把代码变成一个个模块,每个编程…
每种堆法(理解成名次序列,举例3,3,8,2和7,7,100,2都对应2,2,1,3这个名次序列)等概率出现:题目中"两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中"可见这是个组合问题,于是设一个名次的生成函数F(x)=sum i=1->inf 1*x^i/(i!) .因为F(x)的常数项为0,有F^inf(x)=0. 名次序列的方案数的生成函数:A(x) = sum i=0->inf F^i(x) = 1/(1-F(x)) 名次序列的各种方案的名次个数之和的生成函…
传送门 思路 真是非常套路的一道题-- 考虑\(DP\):设\(f_n\)为\(n\)个积木能搭出的方案数,\(g_n\)为所有方案的高度之和. 容易得到转移方程: \[ \begin{align*} &f_n=[n=0]+\sum_{i=1}^n {n \choose i} f_{n-i}\\ &g_n=\sum_{i=1}^n {n \choose i} (f_{n-i}+g_{n-i}) \end{align*} \] 发现\(f_n\)似乎更容易搞出来,我们先搞\(f_n\). 由…
Problem 洛谷P2342-叠积木 Accept: 373   Submit: 1.1k Time Limit: 1000 mSec    Memory Limit : 128MB Problem Description 约翰和贝西在叠积木.共有30000块积木,编号为1到30000.一开始,这些积木放在地上,自然地分成N堆.贝西接受约翰的指示,把一些积木叠在另一些积木的上面.一旦两块积木相叠, 彼此就再也不会分开了,所以最后叠在一起的积木会越来越高.约翰让贝西依次执行P条操作,操作分为两种…
显然的做法是求出斯特林数,但没有什么优化空间. 考虑一种暴力dp,即设f[i]为i块积木的所有方案层数之和,g[i]为i块积木的方案数.转移时枚举第一层是哪些积木,于是有f[i]=g[i]+ΣC(i,j)·f[i-j],g[i]=ΣC(i,j)·g[i-j] (j=1~i). 考虑优化 .我们发现这个转移非常像卷积.写成卷积形式,有f[i]=g[i]+Σi!·Σf[i-j]/j!/(i-j)!,g[i]=i!·Σg[i-j]/j!/(i-j)!.直接分治NTT即可. 诶是不是强行多了个log?考…
不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的. 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转移枚举第一层是哪些积木:$$f_n=g_n+\sum_{i=1}^{n}\binom{n}{i}f_{n-i},f_0=0$$$$g_n=\sum_{i=1}^{n}\binom{n}{i}g_{n-i},g_0=1$$ 转化成卷积形式:$$\frac{f_n}{n!}=\frac{g_n}{n!}…
P1969 积木大赛 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为\(n\)的大厦,大厦可以看成由\(n\)块宽度为1的积木组成,第\(i\)块积木的最终高度需要是\(h_i\). 在搭建开始之前,没有任何积木(可以看成\(n\)块高度为\(0\)的积木).接下来每次操作,小朋友们可以选择一段连续区间\([l,r]\),然后将第\(L\)块到第\(R\)块之间(含第\(L\)块和第\(R\)块)所有积木的高度分别增加1. 小\(M\)是个聪明的小朋友…
描述 积木游戏 SERCOI 最近设计了一种积木游戏.每个游戏者有N块编号依次为1 ,2,…,N的长方体积木.对于每块积木,它的三条不同的边分别称为"a边"."b边"和"c边" 游戏规则如下:1.从N块积木中选出若干块,并将它们分成M(l<=M<=N) 堆,称为第1堆,第2 堆…,第M堆.每堆至少有1块积木,并且第K堆中任意一块积木的编号要大于第K+1堆中任意一块积木的编号(2<=K<=M). 2.对于每一堆积木,游戏者要…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1109 [题目大意] Mary在她的生日礼物中有一些积木.那些积木都是相同大小的立方体. 每个积木上面都有一个数.Mary用他的所有积木垒了一个高塔. 妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置. 一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置. Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置. 请你输出最优答案 [题解] 我们发现…
[BZOJ1109][POI2007]堆积木Klo Description Mary在她的生日礼物中有一些积木.那些积木都是相同大小的立方体.每个积木上面都有一个数.Mary用他的所有积木垒了一个高塔.妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置.一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置.Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置.请你告诉Mary她应该移走哪些积木. Input 第一行为一个数n,表示高塔的初始高度.第二行包含n个数…
设f[i]为i个积木能堆出来的种类,g[i]为i个积木能堆出来的种类和 \[ f[n]=\sum_{i=1}^{n}C_{n}^{i}g[n-i] \] \[ g[n]=\sum_{i=1}^{n}C_{n}^{i}f[n-i]+g[n] \] 理解就是选出包含最后一个的块,然后剩下的按照之前的拼 化简,设s为\( \frac{1}{n!} \),G为\( \frac{g[n]}{n!} \),F为\( \frac{fn]}{n!} \),把组合数拆开,变成卷积形式,然后化简就变成 \[ F=\…
题目描述 Mary在她的生日礼物中有一些积木.那些积木都是相同大小的立方体.每个积木上面都有一个数.Mary用他的所有积木垒了一个高塔.妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置.一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置.Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置.请你告诉Mary她应该移走哪些积木. 输入 第一行为一个数n,表示高塔的初始高度.第二行包含n个数a1,a2,...,an,表示从下到上每个积木上面的数. 输出 注意:请…
传送门 题解 比赛的时候光顾着算某一个\(n\)的答案是多少忘了考虑不同的\(n\)之间的联系了--而且我也很想知道为什么推着推着会变成一个二项式反演-- 设\(f_n\)为\(n\)块积木时的总的层数,\(g_n\)为\(n\)块积木时总的方案数,则有\[g_n=\sum_{i=1}^n\binom{n}{i}g_{n-i}\] \[f_n=g_n+\sum_{i=1}^n\binom{n}{i}f_{n-i}\] \(g\)的话就是枚举第一层有哪几个,\(f\)的话也是枚举第一层有几个,前面…
P2342 叠积木   题目大意:   给你一堆积木,排成一行,初始时每对积木都只有一个,支持两种操作  第一种是移动操作,格式为“移动X到Y的上面”.X和Y代表两块积木的编号,意思是将X所的那堆积木,整体叠放到Y所在的那堆积木之上:“M”  第二种是统计操作,格式为“统计Z下方的积木数量”.Z代表一块积木的编号,意思是贝西需要报告在编号为Z的积木之下还有多少块积木:“C” 显然的带权并查集,其实是多维护了两个变量,注意查询时一定要先更新,防止查询时未被更新而出错 #include<bits…
题目大意: 有一堆积木,0号节点每次可以和其上方,下方,左上,右下的其中一个交换,问至少需要多少次达到目标状态,若步数超过20,输出too difficult 目标状态: 0 1 1 2 2 2 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 题目分析: 因为前段时间做了一道转花盆刻骨铭心,所以一看到这题就开始bfs+hash,明知道过不了,但谁知道姿势正确得了85分,后来出题人告诉数据最大步数才14,我把搜索停止条件改成了18,瞬间ac... 正解有很多种:迭代加深,双向搜索,\(…
本蒟蒻又来发题解了 这题是不是有点像并查集,但是那个询问的个数是不是有点骚: 所以,普通的并查集是无法解决这个问题的,这个时候就需要用到带权并查集了: 每次跑的时候都记录下它的下面有几个点,然后询问的时候的复杂度是O(1)的: 好,接下来就可以愉快的码代码了: include<bits/stdc++.h> using namespace std; define maxn 500010 char ch; int n, x, y, fa[maxn], sum[maxn], num[maxn]; /…
传送门 Description 有一块\(n\)行\(m\)列的网格板, \(n,m\)都是奇数.网格上平铺着一些\(1*2\)的积木.积木可以旋转,不能重叠.网格板上只有一格的空位. 你可以做两种操作: 将一块与空白格相邻(指有公共边)的积木旋转\(90^{\circ}\)到空白格中: 将一块与空白格相邻的积木平移至空白格中. 如图所示(被移动的积木颜色较浅): 请你用以上两种操作将给定的网格板变换为指定的状态. Solution  发现并没有要求用最短的步骤(笑... 其实,每次改变空格的位…
题面 洛谷传送门 思路 害 学了4年多OI,第一次知道还有带权并查集这个东西 wtcl 这个玩意儿的原理和详细实现,可以参考这个博客:带权并查集传送门 这道题,就是在带权并查集的基础上,加个维护每个集合的大小. 并查集往每堆积木的底部那个上面合并(也就是根是最底下的积木),合并的时候把儿子的value设定成父亲的size即可 Code #include<iostream> #include<cstring> #include<algorithm> #include<…
题目描述 输入 输出 样例输入 3 8 7 6 3 9 4 1 10 5 输出 18 数据范围 样例解释 解法 容易从n<=15得出可以使用状态压缩动态规划. 设f[i][j][k]表示01状态为i,最后一个放的是第j个积木,最后放的积木按第k种方式来摆放.摆放方式有3种,长 宽.长 高.宽 高. 转移方程显然. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath&g…
3505. [NOIP2013模拟11.4A组]积木(brick) (File IO): input:brick.in output:brick.out Time Limits: 1000 ms Memory Limits: 262144 KB Description 小A正在搭积木.有N个位置可以让小A使用,初始高度都为0.小A每次搭积木的时候,都会选定一个拥有相同高度的区间[A..B],然后将位置[A+1..B-1]上的所有积木的高度加一.不幸的是,小A把积木搭好之后没多久,小A调皮的弟弟就…