项链专题

能量项链,洛谷

解释:  环形dp问题还是考虑将环拉直,可以参考我上一篇文章:环形石子合并 [2 3 5 10 2] 3 5 10 将环拉直,[]内是一个有效的区间,可以模拟吸收珠子的过程,         如[2 3 5] <=>(2,3)(3,5)    2是头,3是中间,5是尾 len >= 3:因为最后[2 10 2]是最小的可以合并的有效区间 len <= n + 1因为[2 3

【COGS】421 [SDOI2009] HH的项链 树状数组

传送门:【COGS】421 [SDOI2009] HH的项链 题目分析:将区间以右端点为关键字降序排序,然后从左到右依次遍历每个数并插入到树状数组中,如果遍历到一个数的时候在他的前面已经有一个相同的数时,将之前位置上的数从树状数组中删除。然后我们每处理完一个位置上的数后,看这个位置上是否有右端点,如果有则做一次求和,这个右端点属于的区间【L,R】的值即sum(R)-sum(L-1)。

NYOJ 280 LK的项链 POJ 2409 Let it Bead(polya 定理)

NYOJ 280 LK的项链  :click here POJ 2409 Let it Bead:click here 题意:一盒有红、蓝、绿三种颜色的珠子,每种颜色珠子的个数都大于24,现在LK想用这一盒珠子穿出一条项链,项链上的珠子个数为n(0<=n&lt;=24),请你帮她计算一下一共可以用这一盒珠子可以穿出多少条不同的项链。通过旋转、翻转达到同一种状态的被认为是相同的项链。

【一百一十】【算法分析与设计】[SDOI2009] HH的项链,树状数组应用,查询区间的种类数,树状数组查询区间种类数

P1972 [SDOI2009] HH的项链 [SDOI2009] HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。 有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。

搜狐[编程题]彩色宝石项链.有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等

时间限制:1秒 空间限制:32768K 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项

HSACM 1680 能量项链

 1680: 能量项链 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 39   Solved: 13   Scores: 90.11 [ Submit][ Status][ BBS] Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有 N颗能量珠。能量珠是一颗有头标记与尾标

蓝桥杯 能量项链(区间dp)

能量项链 区间dp模板题 #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){int head[220],tail[220],dp[220][220];int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&head[

P1972 [SDOI2009]HH的项链(树状数组离线,主席树)

题意: 多次询问 [ l , r ] [l,r] [l,r]中有多少不同的数。 思路: 本题卡了莫队。 树状数组离线:每个点代表这个位置的值,然后每次遇到这个数,就把上次的位置清空。这样当前维护的区间里面就没有重复数了。 可持久化线段树:其实和树状数组离线一样,就是基于上一个前缀的线段树,将当前位置的值设置为 a [ i ] a[i] a[i],同时将 a [ i ] a[i] a[i]上一

蓝桥杯---试题 算法提高 分割项链(尺取法)

试题 算法提高 分割项链 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述   两个强盗刚刚抢到一条十分珍贵的珍珠项链,正在考虑如何分赃。由于他们不想破坏项链的美观,所以只想把项链分成两条连续的珍珠链。然而亲兄弟明算账,他们不希望因为分赃不均导致不必要的麻烦,所以他们希望两条珍珠链的重量尽量接近。于是他们找到了你,希望让你帮忙分赃。   我们认为珍珠项链是由n颗不同的珍珠组成的,

3790: 神奇项链

容易发现,处理回文串的时候得到的答案是可以去更新答案的, 即 令 f[i] f [ i ] f[i] 表示处理前 i i i 个最小由几个回文串构成, 那么,对于第iii个位置,他由 [i−p[i],n] [ i − p [ i ] , n ] [i-p[i],n]能更新的就是 前 [1,i+p[i]−1] [ 1 , i + p [ i ] − 1 ] [1,i+p[i]-

SPOJ-DQUERY HYSBZ 1878 HH的项链 (线段树/树状数组/莫队/主席树)

1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MB   Description HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中,包含了多

动态规划(算法竞赛、蓝桥杯)--区间DP石子合并与环形石子合并、能量项链

1、B站视频链接:E28【模板】区间DP 石子合并_哔哩哔哩_bilibili 题目链接:石子合并(弱化版) - 洛谷 #include <bits/stdc++.h> using namespace std;const int N=310;int n,a[N],s[N];int f[N][N];//f[i][j]表示从i到j合并成一堆的最小代价int main(){mem

jzoj 1234 洛谷 1203 codevs 1542 坏掉的项链 破碎的项链

题目 求把圆环拆成链,从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事,能得到的最大的珠子数。 分析 可以把链扩大3倍,然后纯模拟233 代码 #include <iostream>using namespace std;string a; int n,ans;int max(int a,int b){return (a>b)?a:b;}int

Python3编程练习-彩色宝石项链

题目描述 有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能够拿到最多的宝石。 输入

【JZOJ1214】【洛谷P4130】项链工厂【线段树】

题目大意: 题目链接:https://www.luogu.org/problemnew/show/P4130 一条项链包含 N 个珠子,每个珠子的颜色是 1,2,…,c 中的一种。项链 被固定在一个平板上,平板的某个位置被标记位置 1 ,按顺时针方向其他位置被记为 2,3,…,N。 你将要编写的软件系统应支持如下命令: R k R\ k R k意为 R o t a t e k Rotat

jzoj1234. 【USACO题库】1.1.4 Broken Necklace破碎的项链

1234. 【USACO题库】1.1.4 Broken Necklace破碎的项链 题目 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=35000),珠子是随意安排的。 这里是 n=29 的二个例子: 1 2 1 2r b b r

【区间dp 环形dp】洛谷_1063 能量项链

题意 给出 N N N个珠子,每个珠子有头和尾,我们每次让两颗珠子聚合,得到的能量就是(第一颗珠子的头××\times第一颗珠子的尾 × × \times第二个珠子的尾),聚合后,得到新珠子,头为第一颗珠子的头,尾为第二颗珠子的尾。 这些珠子连成一个环,求出一个聚合顺序使得得到的能量最大。 思路 区间的动态规划。 我们设 f[i][j] f [ i ] [ j ] f[i][j]为

HH的项链[莫队]

题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。 输入格式: 第一行:一个整数N,表示项链

[BZOJ1878] [SDOI2009]HH的项链

传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=1878 题目大意 给定一个序列,求一个区间内有多少个不同的数 题解 核心是离线处理 我们先定义next[i]表示i后面第一个与i颜色相同的位置 我们先考虑对于初始时处理询问区间[1..R]的情况,我们只对每个颜色第一个位置处赋值为1,其余赋值为0,那么答案就是区间和 当我们把左

[BZOJ3790] 神奇项链

[BZOJ3790] 神奇项链 题解 求出该串的每个最长回文串,线段覆盖即可,处理出左端点 ≤i \le i的最远右端点,贪心 CODE

NOI 项链工厂

原题:NOI 项链工厂 方法:线断树 program necklace;constmaxn=500000;varls,rs,s,cl,cr,z:array[1..maxn shl 2]of longint; sto,col,cur:longint; rev:boolean;procedure update(const x:longint);begincl[x]:=cl[ls[

HH的项链(树状数组)区间内不同的数量

HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只 好求助睿智的你,来解决这个问题。 Input 第一行:一个整数N,表

NOIP2015提高组第二轮T1:能量项链

题目链接 [NOIP2006 提高组] 能量项链 题目描述 在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链。在项链上有 N N N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠

【SDOI2009】bzoj1878 HH的项链【解法一】

Description HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此, 他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同 的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解 决这个问题。 Input 第一行

SDOI2009HH的项链

HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此, 他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同 的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解 决这个问题。 在线貌似不可做? 可以用离线算

BZOJ 1878 [SDOI2009]HH的项链 (莫队算法)

题意: 给你n个数字,然后查询某个区间有多少种数字 思路: 莫队裸题,用一个cnt维护区间数字的数量就能实现o(1)转移了 错误及反思: 代码: #include<bits/stdc++.h>using namespace std;const int maxn= 50000+10;const int maxm= 1000000+10;int pos[maxn];int cnt