ICode9

精准搜索请尝试: 精确搜索
  • 【ybtoj】【背包问题】魔法开锁2021-09-09 08:01:13

    题意 题解 此题坑还是很大的。 一开始看到题目所说概率云云,联想到的是类似期望DP之类的方法,苦思冥想之后放弃,几乎没有思路 首先需要转化问题:求出“选出 t 个点覆盖掉所有的环”的方案数和所有选择的方案数(也就是从 n 个点中选 t 个点,即C(n,m)) 那么我们先预处理出组合数的递推 voi

  • 【ybtoj】【kmp】字符串题2021-09-06 17:31:17

    推荐一篇dalao的博客:wind_whisper qwq特别有帮助 题解 题解 神题!!!能够大大加深对KMP的理解qwq 循环节的常用结论:nxt[i] = i - pre[i] (画画图就能推出来) 对于每一个 nxt[i] 分类讨论: p[i]>0: 此时 s[i] = s[p[i]] p[i]=0: 我们首先要明白p[i]=0是怎么得到的因为kmp计算里的那个while

  • 【ybtoj】【Hash】单词背诵2021-09-06 12:01:38

    题意 题解 首先是第一问,看到题感觉是不用Hash,直接用 map<string,int>就可以,但是怀疑常数大 看了题解说先把每个单词的Hash值求出,再用 vis 数组判断是否出现过,但是我想了想这个 vis 数组也得用 map ,就感觉用Hash没什么意义,于是就没用 Hash 第二问,一开始想到二分,但是发现 check 函

  • 【ybtoj】【二维Hash】对称正方形2021-09-06 11:33:24

    题意 题解 这题洛谷上有,还是个紫题 根据对称的定义,再看看范围,容易想到二分答案(Hash好像经常和二分结合在一起) 二分部分 但是具体怎么二分? 首先确定,二分成立需要单调性,所以一定是从中心点二分,但是当正方形为奇数的时候中心点在中央的格子,那么偶数呢? 实际上,边长为偶数的时候正方形

  • 【ybtoj】【Hash】回文子串2021-09-06 08:34:58

    题意 题目描述 如果一个字符串正着读和倒着读是一样的,则称它是回文的。 给定一个长度为 N 的字符串 S,求他的最长回文子串的长度是多少。 输入格式 输入将包含最多 30 个测试用例,每个测试用例占一行,以最多 106 个小写字符的形式给出。 一个以字符串 END(不包括引号)开

  • 【ybtoj】【字典树】单词拼接2021-09-05 22:03:05

    题意 E. 1.单词拼接 题目描述 给定由一些单词组成的词典。 一个单词是特殊的,当且仅当它能由词典里的两个单词拼接而成。 求词典里特殊的单词数。 输入格式 一行一个字符串,表示词典里的一个单词。每个字符串由小写字母组成,每个字符串按字典序排列,每个字符串只会

  • 【YBTOJ】约数之和2021-08-19 08:00:30

    题目大意: 求 \(A^B\) 约数之和。 思路: 分治递归即可。 代码: const int N = 0, mod = 9901; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while (c != '-' && (c < '0' || c > '9')) c = getchar(); if (c == '-') f

  • 【YBTOJ】【POJ 1821】Fence2021-08-17 13:34:30

    题目大意: 有 \(n\) 块木板从左到右排成一行,有 \(m\) 个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。 第 \(i\) 个木匠要么不粉刷,要么粉刷包含木板 \(S_i\) 且长度不超过 \(L_i\) 的连续的一段木板,每粉刷一块可以得到 \(P_i\) 的报酬。不同工匠的 \(S_i\) 不同。 请问如何安排

  • 【YBTOJ】【CF235B】【Luogu P1365】Let's Play Osu!2021-08-12 15:02:44

    题目大意: 有 \(n\) 次点击要做,成功了就是 o,失败了就是 x,分数是按 combo 计算的,连续 \(a\) 个 combo 就有 \(a\times a\) 分,combo 就是极大的连续o。 思路: 设 \(f_i\) 表示前 \(i\) 秒期望分数,\(g_i\) 表示前 \(i\) 秒期望连续 combo。 方程显然: \[g_i=(g_{i-1}+1)p \]\[f_i=f_{i-1

  • 【YBTOJ】【UVA10140】Prime Distance2021-08-10 20:33:01

    Prime Distance 链接: 洛谷 题目大意: 给定两个正整数 \(l,r\),求 \([l,r]\) 间 相邻 的两个差最大的质数和 相邻 的两个差最小的质数。如果区间内质数个数 \(\le 1\),输出 There are no adjacent primes.。 思路: 水题,通过前 \(2^16\) 个质数排除 \([l,r]\) 之间的合数。 代码: const i

  • YBTOJ:拔河比赛2021-08-08 19:32:28

    题目大意 求最符合拔河比赛要求的分队方法。 题目分析 用一个三元组(x,y,z)来表示当前的情况:x为当前考虑到第几个人,y为当前已经选择了多少个人到第一个分队里,这队人的体重和为z。 当y==n/2或者x>n时结束。 用dfs暴搜来实现…… \(Code\) #include<iostream> #include<cstdio> #in

  • 「YbtOJ」递推算法2021-08-04 19:33:23

    划分数列 题目地址 Solution 考虑递推。 设\(f_i\)表示\(a_1\sim a_i\)的最少划分段数,\(p_i\)代表以\(i\)结尾单调不降的一段的起点,\(q_i\)则表示以\(i\)结尾单调不升的一段的起点,注意:起点代表这一段第一个数的前一个坐标。 我们可以得到以下转移方程: \[\large f_i=\min(f_{p_i}+1

  • YBTOJ:数列分段2021-08-03 20:34:32

    题目大意 把一个长度为n数列分成m段,让每段的最大值最小。(m<=n) 题目分析 首先看出这题应该用二分做,然后考虑这道题答案范围的上下限:下限就是最大的\(a_i\),而上限就是\(\Sigma^{i=n}_{i=1}a_i\) 确定边界之后,开始二分: 用当前的mid作为每一段的最大值,假如能够将该数列分为m段,那么r=

  • YBTOJ:斐波拉契(矩阵快速幂)2021-08-01 18:33:37

    文章目录 题目描述题目描述代码 题目描述 题目描述 关键在于如何转化为本题的题目。。。 设 y=(1-根号5)/2$$ 再令: A(n)=xn + + + yn 通过尝试可以发现,A其实就是一个

  • 【ybtoj 倍增问题课堂过关】【例题1】查找编号2021-07-25 17:06:16

    【例题1】查找编号 Link题目大意解题思路Code Link 传送门 题面//因为不知道侵不侵权所以就是题面是私密的,有账号的直接看转送门就可了 题目大意 给n个数(已经排好顺序了), m个询问,问q在序列中排第几位(如果在序列中有多个q,那么就输出最靠前的) 解题思路 因为数组爆了,一直r

  • YBTOJ:划分数列2021-07-25 10:31:06

    题目大意 给定一个长度为\(n\)的数列A,要求划分最少的段数,使得每一段要么单调不降,要么单调不升。 题目分析 先预处理出两个数组lwi与hgi,lwi表示以i为结尾的单调不升子序列的起点,hgi表示以i为结尾的单调不降子序列的起点。 设d[i]为A1到Ai的最少划分数; 可得递推关系式: \(d[i]=min(d[

  • 【ybtoj】【状压dp】种植方案2021-07-22 19:00:42

    题意 题目描述 农场主新买了一块长方形的新牧场,这块牧场被划分成  行  列,每一格都是一块正方形的土地。农场主打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。 遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是农场主不会选择两

  • 【YBTOJ】【国家集训队】彩色圆环2021-07-15 22:03:26

    彩色圆环: 题目大意: 一个环上有 \(n\) 个点,每个点随机染为 \(m\) 种颜色之一。求环上同色连续段长度之积的期望值。 思路: 破环为链,就有 \(f_{i,[0,1]}\) 表示到第 \(i\) 个数,环首尾是否同种颜色的期望值。则有: \[\begin{aligned} f_{i,1}&=\sum_{j=0}^{i-1} \frac{p_{i-j}\cdot f_{

  • 【YBTOJ】最长距离2021-07-13 07:31:06

    最长距离 题目大意: 给出一个以 1 为根的 \(n\) 个结点的树,树边有权值,求出每个结点与相距最远结点间的距离 \(s_i\)。 正文: 有一条性质:每个节点相距最远的节点一定是树的直径的端点。 那么搜索三次:找端点、统答案。 代码: const int N = 1e4 + 10; inline ll Read() { ll x = 0, f

  • 【YBTOJ】【Luogu P6218】[USACO06NOV] Round Numbers S2021-07-11 22:35:21

    【YBTOJ】【Luogu P6218】[USACO06NOV] Round Numbers S 链接: 洛谷 题目大意: 在 \([l,r]\) 中找到二进制中零数大于等于一数的数的个数。 正文: 数位 DP 板子题。设 \(f_{len,A,B,pos}\) 表示当前 \(len\) 位 \(A\) 个零、\(B\) 个一,碰没碰顶的方案数。 代码: const int N = 60; in

  • 【YBTOJ】【HDU3652】B-number2021-07-11 20:32:43

    【YBTOJ】【HDU3652】B-number 题目大意: 查询 \([1,n]\) 中有多少个数包含 \(13\) 并能被其整除。 正文: 数位 DP 板子题。设 \(f_{len,x,mod,flag,pos}\) 表示,在第 \(len\) 位时,其数为 \(x\),且当前余数是 \(mod\),是否有 \(13\) 出现,是否到顶的方案数。 代码: const int N = 15; in

  • [ybtoj 高效进阶 4.4] [线段树] 小白逛公园2021-07-11 20:02:01

    [ybtoj 高效进阶 4.4] [线段树] 小白逛公园 题目 解题思路 因为是在区间中找一段连续的不一定要取完 要维护的是最大子段和以及区间和 最大子段和可以看作左端最大子段和以及右端子段和中取其一 别的与单点修改,区间求和一样 代码 #include<iostream> #include<cstdio> us

  • ybtoj 二叉堆2021-07-09 09:05:01

    二叉堆学习总结 怎么说呢,二叉堆这个东西就是一个维护区间最大值和最小值的一个东西,可以被其他东西所部分替代,但是还是得讲一下二叉堆运作的原理,首先先上put函数代码。 void put(int x) // min { heap[++len] = x; int son = len; while (son > 1) { int

  • YbtOJ 背包问题课堂过关 例3 宝物筛选【二进制拆分】【01背包】2021-07-08 19:30:16

    思路 这道题一看是多重背包,直接交T飞。 于是就用二进制拆分把宝物拆分成几个宝物,以空间换时间,然后就变成了01背包。 代码 #include<iostream> #include<cstdio> using namespace std; int n,W,v[1000010],w[1000010],s[1000010],f[1000010]; int a[100010],b[100010],tot;

  • 【YBTOJ】货币系统2021-07-08 12:00:51

    思路: 用一个类似筛的东西,把不可以表示的筛出来,那就是B的货币系统 c o d e code code #include<iostream>

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有