CF264D - Colorful Stones 题解】的更多相关文章

题面 官方题解 模拟赛题解 题解概述: 定义符号A~B表示序列A是序列B的子序列,A!~B反之. 设操作序列为I,则有A~I,B!~I,C~I,D!~I. 可得出条件①B!~C且D!~A,所以我们只要讨论满足这个条件的情况. 分情况讨论: c1=c2,则可以进行操作c1,得到的状态仍满足条件①: c1!=c2,且B'!~C,此时可以进行操作c1: c1!=c2,且D'!~A,此时可以进行操作c2: c1!=c2,且D'~A,B'~C,此时无法进行操作,此情况无解: 我们还发现第4种情况下,B=.…
洛谷题目传送门 神仙思维题. 对于两个字符串的匹配问题,似乎之前蒟蒻写的HAOI2010最长公共子序列题解中提到的建网格图模型是一种套路? 给一个稍微强一点的样例(把字母换成了ABC) AABCB BACBA 它所对应的网格图如下(横轴代表\(s\),纵轴代表\(t\),显示的点表示可达状态) 我们首先可以大致确定,所有的可达状态在一个不规则图形的界内 (红色线条).第\(i\)行(或列)的界是\([l_i,r_i]\),而且类似two pointers,\(l_i\)和\(r_i\)都随\(i…
Soma is a fashionable girl. She absolutely loves shiny stones that she can put on as jewellery accessories. She has been collecting stones since her childhood - now she has become really good with identifying which ones are fake and which ones are no…
题目 题目来自于rng_58Orz. 算法 讨论某个状态\((x,y)\)是否可达,\(x\)是狐狸到达的石头,\(y\)是猫的. 题解说,如果满足以下条件,那么它就是可到达状态: \(t[0..y]\)不是\(s[0..x-1]\)的子串. \(s[0..x]\)不是\(t[0..y-1]\)的字串. \(s\)和\(t\)串的形式不能是这样的:\(s=......ab,t=......ba\). 第三个条件很容易忽略! 建议多看几次rng_58的题解,我觉得题解思考的方式很新奇Orz: 考虑…
题目链接:http://www.hihocoder.com/problemset/problem/1636 题目描述 在中国古代神话中,盘古是时间第一个人并且开天辟地,它从混沌中醒来并把混沌分为天地. 刚开始地上是没有山的,只有满地的石头. 这里有 \(N\) 堆石头,标号为从 \(1\) 到 \(N\) .盘古想要把它们合成一堆建造一座大山.如果某些堆石头的数量总和是 \(S\) ,盘古需要 \(S\) 秒才能把它们合成一堆,这新的一堆石头的数量就是 \(S\) . 不幸的是,每一次盘古只能把…
Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\),试求出两个不相等的数之间的距离的最大值. 数据范围:\(3\leqslant n\leqslant 3\times 10^5,1\leqslant a_i\leqslant n\). Solution 弄两个指针 \(l,r\),一开始将它们分别定为 \(1,n\),然后分两次操作,第一次只将 \(l\) 向右移,第二次只将 \(r\) 向左移,直到 \(a_l\neq a_r\) 为止,然后再求出…
Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\).有 \(m\) 次询问,询问有以下两种: \(1~l~r\),求 \(\sum\limits_{i=l}^ra_i\). \(2~l~r\),将数组非降序排列后再依次标号,然后再求 \(\sum\limits_{i=l}^ra_i\). 数据范围:\(1\leqslant l\leqslant r\leqslant n\leqslant 10^5,1\leqslant m\leqslant 10^5…
A. Colorful Stones (Simplified Edition) time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There is a sequence of colorful stones. The color of each stone is one of red, green, or blue. You a…
题解 A AND Minimum Spanning Tree 参考代码: #include<bits/stdc++.h> #define maxl 200010 using namespace std; int n,ans1; ]; int ans[maxl]; inline void prework() { scanf("%d",&n); } inline int find(int x) { ;j<=;j++) ) return mi[j]; } inlin…
[SinGuLaRiTy] Copyright (c) SinGuLaRiTy 2017.  All Rights Reserved. [CQBZOJ 2011] 计算系数 题目描述 给定一个多项式(ax + by)^k,请求出多项式展开后x^n y^m项的系数. 输入 共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开. 输出 输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果. 样例数据 样例输入 样例输出 1 1 3…
A. Colorful Stones (Simplified Edition) 模拟. B. Roadside Trees (Simplified Edition) 每次转移时,只需要爬到\(min(h_i,h_{i+1})\)位置,然后跳到下一个位置即可. C. Escape from Stones 当\(s_i=l\)时,先输出左边的数,否则先输出\(i\),在处理右边的数. D. Good Sequences \(a_i<a_{i+1}\),那么对于每个\(a_i\)找到所有质因子中最长的…
DP: dp[i][j]前i堆放j序列长度有多少行法, dp[i][j]=dp[i-1][j] (不用第i堆), dp[i][j]+=dp[i-1][j-k]*C[j][k] (用第i堆的k个石头) A Famous Stone Collector Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 845    Accepted Su…
A Famous Stone Collector Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 793    Accepted Submission(s): 292 Problem Description Mr. B loves to play with colorful stones. There are n colors of…
题目:http://acm.hdu.edu.cn/diy/contest_show.php?cid=20083 密码:shuacm 感觉他们学校的新生训练出的比较好. 今天很多题目都是强化了背包的转化. 关于背包转化成求最优解见分析:点击打开链接 贴个背包的模板: //0-1背包, 代价为 cost, 获得的价值为 weight // 每种物品最多只可以选一次 void ZeroOnePack(int cost, int weight) { for(int i = nValue; i >= co…
A Famous Stone Collector Problem Description Mr. B loves to play with colorful stones. There are n colors of stones in his collection. Two stones with the same color are indistinguishable. Mr. B would like to  select some stones and arrange them in l…
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O(1). HashMap(std::unordered_map).HashSet(std::unordered_set)的原理与Hash Table一样,它们的用途广泛.用法灵活,接下来侧重于介绍它们的应用. 相关LeetCode题: 706. Design HashMap  题解  705. Des…
目录 题目 口胡题解 题目 有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度. 在河面上有一些石头,距离 \(i\) 远的地方有 \(a_i\) 个石头,每个石头只能使用一次,求最大能有多少青蛙过河. 输入的第一行为两个整数 \(W,L(1<l<w<10^5)\) 第二行有 \(W-1\) 个整数 \(a_1,a_2.......a_{w-1}(0<a_i<10^4)\) 输出为一个整数,即能过河的最大青蛙数…
题意:合并石子,每次只能合并l~r堆成1堆,代价是新石堆石子个数,问最后能不能合成1堆,不能输出0,能输出最小代价 思路:dp[l][r][t]表示把l到r的石堆合并成t需要的最小代价. 当t == 1时,dp[i][j][1] = min(dp[i][j][1], dp[i][k][t] + dp[k + 1][j][1] + sum[j] - sum[i - 1]),其中t属于[l - 1, r - 1] 当t >= 2时,dp[i][j][t] = min(dp[i][j][t], dp[…
1.题目描述 2.分析 使用HashTable 是解决这种的好方法. 3.代码 int numJewelsInStones(string J, string S) { map<char,int> m; for(char c : S) m[c]++; ; for( char c: J) ans += m[c]; return ans; }…
目测 普及/提高- 难度. 思路 将 9 种可能的等级存储在数组里,则 min 值为分数为 0 ~ 3199 的颜色种类个数,max 值为 min 值加上分数 >3200 的人数. 特判 若分数为 0 ~ 3199 的颜色种类个数为 0,分数 >3200 的人数大于 1,则min 值为 1,max 值为分数 >3200 的人数 代码 #include <stdio.h> int getBlock(int rating) { if (rating < 400) retur…
此题就是:给你一个数组,让你找出两个不同的元素,并让它们的下标差距最大. 思路:从2到n,如果与1不同,记录距离,与原数比较,取大. 从1到n-1,如果与n不同,记录距离,与原数比较,取大. AC代码(你们最想要的) #include<bits/stdc++.h> using namespace std; int main(){ int n,a[300010],i,ans=0; cin>>n; for(i=1;i<=n;i++)cin>>a[i];//输入 for…
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 57    Accepted Submission(s): 49 Problem Description Recently, paleoanthropologists have found historical remains on an…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5973 Game of Taking Stones Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) 问题描述 Two people face two piles of stones and make a game. They take turns to take stones. As ga…
D. Mr. Kitayuta's Colorful Graph Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/506/problem/D Description Mr. Kitayuta has just bought an undirected graph with n vertices and m edges. The vertices of the graph are numbered…
Colorful Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1539    Accepted Submission(s): 616 Sample Input 3 1 2 1 1 2 2 3 6 1 2 1 3 2 1 1 2 1 3 2 4 2 5 3 6 Sample Output Case #1: 6 Case #…
C - Linear Approximation 找出\(A_i - i\)的中位数作为\(b\)即可 题解 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #define enter putchar('\n') #define space putchar(' ') #define fi first #define se second #define…
A - Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 #include <iostream> #include <cstdio> using namespace std; int N; int a[105]; int main() { scanf("%d",&N); for(int i = 1 ; i <= N ; ++i) { scanf("%d",&a[i]); } int…
Colored stones Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1759 Accepted: 829 Description You are given a row of m stones each of which has one of k different colors. What is the minimum number of stones you must remove so that no two…
突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对应的随笔下面评论区留言,我会及时处理,在此谢过了. 过程或许会很漫长,也很痛苦,慢慢来吧. 编号 题名 过题率 难度 1 Two Sum 0.376 Easy 2 Add Two Numbers 0.285 Medium 3 Longest Substring Without Repeating C…
题目链接: Colorful Points 题意: 给出一段字符串(长度最大为1e6),每次操作可以删除字符串中所有相邻字符与其不同的字符.例如:aabcaa 删除一次就变成了aa,就无法再删除了.题目要求所给出的字符串要操作几次后才无法操作. 题解: 可以把整个字符串化简为相邻字符都不同的串,把每个位置字符的个数记录下来,比如aaaabbbbccccdddd -> [4*a][4*b][4*c][4*d].然后暴力求.@.@这题比我想象中的也暴力太多了,妈耶,刷新了我对D题的认知. #incl…