Gym - 100712D Alternating Strings】的更多相关文章

http://codeforces.com/gym/100712/attachments 题意: 给出一个01串,现在要切割这个01串,使得每个子串长度都不大于k,并且每个子串不能01交替出现,单个字符是合法的. 思路:很容易想到用dp去做,但是怎么做呢? 我们可以先预处理一下i~j是否是合法的子串,即是否是01交替出现的串. 接下来我们从尾部开始,d[i]表示i~n所需的最少切割数.那么每次在左边新加入一个数字时,怎么确定它的最少切割数呢? 设f[i][t]不是01交替的串并且长度是小于等于k…
题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现的串(例如01, 10, 101, 010, 101010这些都是01交替出现的串),求最少需要切多少次 令F[i]代表前i个数所需要切的最少的刀数(从1开始计数),那么有 F[i]  = min{F[j] | |j + 1, i| <= k 且 [j, i]这个子串不是01交替出现的串} + 1…
比赛链接:https://vjudge.net/contest/405905#problem/D 题意: 给你一个长度为n的由0或1构成的串s,你需要切割这个串,要求切割之后的每一个子串长度要小于等于k.且每一个子串内不能全都是01交替,就比如 00101010.11010101这样没有问题,不需要切割,因为前面有两个相同的 01010101.10101010这样就不行,就必须切割开 问你最少需要切割多少次 题解: 我们设定输入的01串下标从1开始 我们使用dp[i]表示:s字符串的从第1个字符…
题目链接: http://codeforces.com/gym/101161/attachments 题意: $T$组数据 每组数据包含$L,R,K$ 计算$\sum_{k|n}^{}F(n)$ 定义$F(n)$为斐波那契数列第$n$项 数据范围: $1\leq T\leq 10000$ $1\leq L\leq 10^{18}$ $1\leq R\leq 10^{18}$ 分析: 博客来源:https://blog.csdn.net/qq_41552508/article/details/97…
https://vjudge.net/problem/Gym-100247B 题意: 如果两个字符串通过映射后是一样的,则说明这两个字符串是相似的,现在给出n个字符串,计算出有多少组字符串是相似的. 思路:直接暴力超时了.. 拿样例来说吧,abacaba可以转化成1213121.那么和它相似的字符串也能转化成这个数字串,比如说tetatet,它映射后也能变成1213121. 这样对每个字符串处理一遍就可以了. #include<cstdio> #include<iostream>…
Solved A Gym 100712A Who Is The Winner Solved B Gym 100712B Rock-Paper-Scissors Solved C Gym 100712C Street Lamps Solved D Gym 100712D Alternating Strings Solved E Gym 100712E Epic Professor Solved F Gym 100712F Travelling Salesman Solved G Gym 10071…
[题目链接] A - Who Is The Winner 模拟. #include <bits/stdc++.h> using namespace std; int T; int n; struct X { string name; int num; int ti; }s[10010]; bool cmp(X&a,X&b){ if(a.num != b.num) return a.num > b.num; return a.ti < b.ti; } int main…
Problem Statement A string of zeros and ones is called an alternating string if no two adjacent characters are the same. Examples of alternating strings: "1", "10101", "0101010101". You are given a string s. Each character of…
http://codeforces.com/gym/101161/attachments 这题通过打表,可以知道长度是i的时候的合法方案数. 然后得到f[1] = 2, f[2] = 3, f[3] = 5, f[4] = 8......这样的广义fib数列 现在要求f[k] + f[2k] + f[3k] + ...... + f[xk]的总和. 直接做很难做,我不知道f[i * k] = x * f[(i - 1) * k] + y * f[(i - 2) * k] 推不出系数的话,有一个结…
Weird Cryptography Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u  Gym 100935B Description standard input/output Khaled was sitting in the garden under an apple tree, suddenly! , well... you should guess what happened, a…