bzoj 1151: [CTSC2007]动物园zoo】的更多相关文章

思路:因为每个人最多只能看到五个动物,我们考虑将其状压,f[ i ][ s ] 表示到了第 i 个位置, i, i + 1, i + 2, i + 3, i + 4这四个动物的状态为s, 此时的最大值. 因为它是一个环,所以我们考虑枚举前4位,这样就能dp啦,dp[i][s] = max(dp[i - 1][(15 & s) << 1], dp[i - 1][(15 & s) << 1 | 1]) + val[i][s]; val[ i ]][ s ] 是预处理出来…
传送门 状压dp好题啊. 可以发现这道题的状压只用压缩5位. f[i][j]表示当前在第i个位置状态为j的最优值. 显然可以由f[i-1]更新过来. 因此只用预处理在第i个位置状态为j时有多少个小朋友高兴就行了. 代码: #include<bits/stdc++.h> #define N 50005 using namespace std; int n,c,f[N][35],cal[N][35],las,ans=0; inline int read(){ int ans=0; char ch=…
link 试题分析 发现每个小朋友最多只能看到$5$个动物所以考虑状压$dp$.我们定义$f(i,j)$为第$i$个位置从此往后$5$个人的最喜欢数量.所以只要预处理出对于每个点从后$5$个会让多少小朋友高兴即可 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; inline int read(){ ,ans=;char…
Description 最近一直在为了学习算法而做题,这道题是初一小神犇让我看的.感觉挺不错于是写了写. 这道题如果是一条线的话我们可以构造一个DP f[i,j]表示以i为起点,i,i+1...i+4的取与不取的状态的二进制为j然后1~i积累的答案 以前几乎没有这么写过,因为很难想到j是没有后效性的 前一个状态有两种情况,i-1位取,i-1位不取 也就是f[i-1,j >> 1] f[i-1,j >> 1+1 << 4] 然后小朋友要怎么处理才能做到不重复不遗漏呢 答案…
动物园zoo 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=1151 题解: 我们发现每个点只会往右延伸$5$个,这个数非常小. 再加上每个动物只有选和不选,很容易想到把每个点后面$5$个给状压到一起. 想到这里就好办了,随便弄个数组搞一搞就好. 代码: #include <bits/stdc++.h> #define N 50010 using namespace std; int n, c, f[N][35], bu[N][35…
3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1521  Solved: 813[Submit][Status][Discuss] Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:“对于一个字符串S,它的长度为…
1150: [CTSC2007]数据备份Backup Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1136  Solved: 458[Submit][Status][Discuss] Description Input 输入的第一行包含整数n和k,其中n(2 ≤ n ≤100 000)表示办公楼的数目,k(1≤ k≤ n/2)表示可利用的网络电缆的数目.接下来的n行每行仅包含一个整数(0≤ s ≤1000 000 000), 表示每个办公楼到大…
傲娇的人 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1151 Description 有 N 个傲娇的人,你要指派他们去完成工作.只有当现在被指派的人完成了工作,你才能指派下一个.每个人完成工作需要花费 Ti 分钟,但!他们都好傲娇,他们都希望你马上就指派他,如果你拖延了 t 分钟才指派他,那么就需要付给他 t⋅Ci 元钱作为补偿.问,最少需要花费多少元钱才能去指派所有傲娇…
题目链接:BZOJ - 1150 题目分析 可以看出,我们选的 k 条边一定是相邻两点之间的线段.我们可以将每条边看成一个点,那么我们就是要在 n-1 个点中选出互不相邻的 k 个,使它们的和最小. 我们使用一种神奇的贪心,开始的时候将所有的点权加入堆中,然后取 k 次,每次取权值最小的点,然后将这个点的点权加入答案中,我们取了这个点之后就不能取与它相邻的两个点了,所以我们要将这个点和相邻两点的权值都从堆中删除.但是我们最终的答案并不一定要取这个点,有可能我们会不取这个点,而是取与它相邻的两个点…
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:"对于一个字符串S,它的长度为L.我们可以在O(L)的时间内,求出一个名为next的数组.有谁预习了next数组的含义吗?" 熊猫:"对于字符串S的前i个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除外),最长的长度…
3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2738  Solved: 1475[Submit][Status][Discuss] Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:“对于一个字符串S,它的长度…
题目测评:https://www.luogu.org/problemnew/show/P3622 题目描述 新建的圆形动物园是亚太地区的骄傲.圆形动物园坐落于太平洋的一个小岛上,包含一大圈围栏,每个围栏里有一种动物.如下图所示: 你是动物园的公共主管.你要做的是,让每个来动物园的人都尽可能高兴.今天有一群小朋友来动物园参观,你希望能让他们在动物园度过一段美好的时光.但这并不是一件容易的事——有的动物有一些小朋友喜欢,有的动物有一些小朋友害怕.如,Alex 喜欢可爱的猴子和考拉,而害怕拥牙齿锋利的…
标题效果:给定一个长度n−1n-1的序列,要求选出kk个不相邻的数使得和最小 费用流显然能跑.并且显然过不去- - 考虑用堆模拟费用流 一个错误的贪心是每次取最小.这样显然过不去例子 我们把[每次取最小]改为[每次选择一个区间取反].用堆来维护这些区间就可以 每次取出最小的区间,然后将两边合并 (比方如今堆里有[1,3][4,4][5,5])这三个区间,我取走了[4,4]并计入答案.那么我删除[1,3]和[5,5]这两个区间,并增加[1,5]这个区间,权值为[1,3]的权值+[5,5]的权值-[…
Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣.已知办公 楼都位于同一条街上.你决定给这些办公楼配对(两个一组).每一对办公楼可以通过在这两个建筑物之间铺设网 络电缆使得它们可以互相备份.然而,网络电缆的费用很高.当地电信公司仅能为你提供 K 条网络电缆,这意味 着你仅能为 K 对办公楼(或总计2K个办公楼)安排备份.任一…
求这玩意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i] 对1,000,000,007取模的结果 n≤5,L≤1,000,000 发现$num[i]$有和$fail[i]$类似的递增性质,$num[i]<num[i-1]+1$ 然后$KMP$之后$fail$递推出$sum[i]$为$i$的$fail$祖先有几个 再类似求$fail$的过程求一遍$num$,只是多了判断$2*j \le i$,用$sum[j]$更新答…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1150 [题目大意] 给出n个数,请你挑出k对(每个数不可重复选取),使得他们差的绝对值之和最小(k小于等于n/2) [题解] 因为数列给出有序,省去排序步骤,我们发现最优答案一定是选择k对相邻的数, 因此我们将相邻的数两两之间求差,得到差分数列, 现在问题转化为在这个新的数列中,选取k个不相邻的数,使得和最小. 我们发现在选取一个数之后,只对左右两边的数有影响, 所以,每当我们选取一…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 题意概述:令num[i]表示字符串由1~i的字符形成的前缀中不相重叠的相同前后缀的数量,求mul{ num[i] | 1<=i<=L }mod1000000007. 实际上只要对KMP理解的好这就是个水题,可以想到dp求得num数组,num[i]=num[f[i]]+1,f[i]表示字符串的前缀1~i形成的不重叠的最长相同前后缀长度,如果f[i]=0的话就不存在.题目的提醒实际上…
参考:http://blog.csdn.net/Regina8023/article/details/44158947 神奇的做法.题意相当于若干个数取不相邻的k个使最小.先把数组差分,len表示这段空的长度.设二元组(i,len[i]),开一个小根堆把二元组塞进去,以len排序.每次取出一个二元组,因为单纯的贪心是不行的,所以设计一个"反悔"操作.记录二元组的前驱pr后继ne,把拿出来的二元组的len加进答案,然后把当前二元组和它的前驱后继当成一个,也就是len[x]=len[pr[…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
A.风铃 给一棵二叉树,叶子结点是玩具,为使你的弟弟满意,你需要选一个满足下面两个条件的风铃: (1) 所有的玩具都在同一层(也就是说,每个玩具到天花板之间的杆的个数是一样的)或至多相差一层.(2) 对于两个相差一层的玩具,左边的玩具比右边的玩具要更靠下一点. 你可以交换一个非叶子节点的左右孩子,问至少要交换多少次可以满足或者输出无解. 非叶子节点不超过100000个 题解:题目的限制条件很多,因此很多情况都是无解的,都特判一下. 以下代码卡时间卡空间卡到bzojRank1了 #include<…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2288 [题目大意] 给出一列数,求最多取m段连续的数字,使得总和最大 [题解] 首先我们对数据进行合并处理,连续的一段正数或者连续的一段负数处理成一个数字, 之后我们发现,如果正数的个数小于等于m,那么直接输出正数的总和即可, 如果大于m,我们有些正数不选,或者选择一些负数把左右两端的正数并起来. 这个负数的选择过程相当于减去这个数的绝对值, 正数选择拿出去的过程也相当于减去这个数的…
20180713NOIP模拟赛 T1:动物园 zoo.cpp 2s [题目描述] 给定一张图,点有点权,求每个点到其他所有点中所有点的权值最小值之和. [思路] \(50pts\)做法:对于每个点跑一遍\(spfa\),对于每一遍\(spfa\)累加一下里面的答案,复杂度为\(O(nm)\) \(100pts\)做法:考虑如何更简便的计算答案,我们发现对于路径必然处于原图的最大生成树上,边权取两端点点权的最小值,从大到小枚举树边,每次添加一条边,对于答案的贡献就是\(ans += siz[fx]…
Restful API 文章目录 Restful API 1.REST是什么以及它的 6 个限制 REST是什么? REST的6个限制 2. Restful是什么 Restful是什么 RESTful API具体什么样子? 现实举例 从资源出发 3.为什么要使用Restful HTTP协议-URL HTTP协议-请求 HTTP协议-响应 RESTful架构与其他架构的区别 效率和易用性 安全性 4. 如何使用Restful 资源路径 HTTP动词 过滤信息 状态码 错误处理 返回结果 5. 小结…
UVa 1625 color length https://blog.csdn.net/Dylan_Frank/article/details/52261424 https://www.cnblogs.com/jerryRey/p/4740944.html Uva-1375 The Best Name for Your Baby(未解决) https://blog.csdn.net/u014258433/article/details/69070747 CodeForces - 17C Bala…
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:“对于一个字符串S,它的长度为L.我们可以在O(L)的时间内,求出一个名为next的数组.有谁预习了next数组的含义吗?” 熊猫:“对于字符串S的前i个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除外),最长的长度记作next[i].…
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么num[i] 就是i到根节点的路径上,所有<=i/2 的节点的个数 这棵树的点随深度的递增而增大 所以用st表存这棵树 st 表 开[logn][n],常数优化求st表的过程 #include<cmath> #include<cstdio> #include<cstring…
KMP算法 其实就像题面描述的那样……主要还是KMP算法的基础上搞一些DP(递推)之类…… 随便yy一下就可以得到50分了,因为num数组跟next的关系还是很密切的…… f[i]=f[next[i]]+1; 然后取 t=next[i]; while(t*2>i) t=next[t]; num[i]=num[t]+1; 然而我这样写……TLE了QwQ 因为这样每次都需要重新定位t…… 所以为了省时!我们直接用一个全局指针来搞……(UOJ是个宝地压-参考了RXDoi 神犇的代码) P.S.这次自己…
1150: [CTSC2007]数据备份Backup Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣.已知办公 楼都位于同一条街上.你决定给这些办公楼配对(两个一组).每一对办公楼可以通过在这两个建筑物之间铺设网 络电缆使得它们可以互相备份.然而,网络电缆的费用很高.当地电信公司仅能为你提供 K 条网络电缆,这意味 着你仅…
堆/贪心 一共N-1个元素……用堆维护最大值,取了第x个元素以后,插入v[x-1]+v[x+1]-v[x]这个元素,如果再取这个新元素就表示不取x,而取x-1和x+1……大概就是这种“带反悔”的思路吧…… 已经不会写堆了TAT,膜拜了lyd神犇 /************************************************************** Problem: 1150 User: Tunix Language: C++ Result: Accepted Time:4…
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解\(KMP\)算法. 园长:"对于一个字符串\(S\),它的长度为\(L\).我们可以在\(O(L)\)的时间内,求出一个名为\(next\)的数组.有谁预习了\(next\)数组的含义吗?" 熊猫:"对于字符串\(S\)的前\(i\)个字符构成的子…