ICode9

精准搜索请尝试: 精确搜索
  • Secret of Tianqiu Valley 题解2022-01-25 22:35:26

    link Solution 不难看出,我们可以通过枚举 \(1,2\) 位置来确定每个位置的奇偶性,然后考虑如何对着我们构造的奇偶性来构造解。 不难发现,对于暗着的灯且奇偶性为奇数,我们肯定直接操作最优。然后对于当前没有暗灯且为奇数,如果存在暗灯且为偶数,那么两边一定存在一个亮的灯且奇偶性为奇

  • 牛客练习赛95Dgcd 题解(整除分块)2022-01-22 14:32:14

    题目链接 题目思路 其实是一个整除分块的简单题,稍微思考就能写出来 代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #define fi first #define se second #define pii pair<int,int> #define debug cout<<&quo

  • 【CF5E Bindian Signalizing】题解2022-01-10 14:32:49

    题目链接 题目 Everyone knows that long ago on the territory of present-day Berland there lived Bindian tribes. Their capital was surrounded by n n n hills, forming a circle. On each hill there was a watchman, who watched the neighbourhood day and night. In ca

  • 【笔记】字符串2021-12-16 17:35:04

    来自\(\texttt{SharpnessV}\)的省选复习计划中的字符串。 P3370 【模板】字符串哈希 字符串哈希,一般 \(\rm H(S)=\sum\limits_{i=1}^{Len}bas^{Len-i}\times S_i \bmod P\)。这样我们对一个字符串预处理出它的前缀哈希值和 \(\rm bas\) 的次幂,可以做到 \(\rm O(1)\) 求子串的哈

  • leetcode92 反转链表II2021-12-08 17:00:16

    思路: 头插法。 实现: 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode() : val(0), next(nullptr) {} 7 * ListNode(int x) : val(x), next(nullptr) {} 8 * ListNode(in

  • 【Luogu P3426】[POI2005]SZA-Template2021-11-20 01:00:18

    链接: 洛谷 题目大意: 给定一个字符串 \(s\),找到最小的 \(t\) 使得 \(t\) 匹配的位置能覆盖 \(s\)。 思路: \(t\) 一定是 \(s\) 的一个前后缀(\(s\) 也算),考虑 DP。设 \(f_i\) 表示前缀 \(i\) 的答案,那么 \(f_i\) 要么是 \(i\),要么是 \(f_{\mathrm{border}(i)}\)。那么如果是 \(f_{\mat

  • 均摊数据结构: 带旋链表2021-11-13 12:01:14

    均摊数据结构: 带旋链表 问题引入 在模拟赛中, 遇到一个题, 给出一个括号序列, 对每一个位置, 求包含它的合法的括号序列个数. 预处理 首先用栈将所有不可能被包含的括号都设为空格. 然后将所有 () 找出来, 作为链表的节点, 从左到右连起来. 在每个节点上存一个区间, 这个区间外面

  • KMP算法2021-11-11 12:03:12

    KMP算法: KMP字符串匹配算法 - 王陸 - 博客园 (cnblogs.com) int nxt[100]; 获得nxt数组(nxt[j]表示当匹配到j失败是跳转到nxt[j]位置) int j = 0, k = -1, len = s.length(); nxt[0] = -1; while (j < len) { if (k == -1 || s[j] == s[k]) { j++; k++; nxt[j] = k; } else

  • [POI2011]PRO-Programming Contest2021-11-06 19:04:01

    Bzoj2557     #include<bits/stdc++.h> #define int long long using namespace std; const int N=555; const int M=3e5+7; int n,m,r,t,T; int _; int head[N],nxt[M],to[M]; void add(int x,int y) { _++; nxt[_]=head[x]; head[x]=_; to[_]=y;

  • P6793 [SNOI2020]字符串(后缀树上DP)2021-11-06 11:02:47

    P6793 [SNOI2020]字符串 给出两个长度为\(n\)的字符串\(a,b\),取出他们所有长为\(k\)的子串(各有\(n-k+1\)个),这些子串分别组成集合\(A,B\)。 现在要修改\(A\)中的串,使得\(A\)和\(B\)完全相同。 可以任意次选择修改\(A\)中的一个串的一段后缀。花费为这段后缀的长度。 总花费为每次修

  • CSP 2016-042021-11-01 13:32:29

      CSP201604-1 折点计数            从近三天刷题来看,自2015年9月份开始csp的难度上了一个梯度,原来t1 t2都是题面简单且思维大概在普及-的难度上,现在t1基本普及-/普及的难度 t2大概是提高难度了,且题面逐渐复杂化,2015年的t2哪个模拟系统有些面向现实应用的意思,也难怪前几

  • 题解 P6018 [Ynoi2010] Fusion tree2021-10-28 22:32:03

    发现每个点距离为 \(1\) 的节点就是儿子或者父亲,因此可以把儿子和父亲分开来算。 计算父亲是很容易的,直接维护 \(a\) 的值。对于操作 \(1\) ,在父亲上标记就行了,表示这个点进行过几次的操作 \(1\)。 对于每个节点维护儿子,就会发现是要维护:单点加入、单点删除、全局 \(+1\),全局异或

  • 【ybtoj高效进阶 21282】数字重组(DP)(数学)2021-10-27 07:31:40

    数字重组 题目链接:ybtoj高效进阶 21282 题目大意 给你一个数组,再给出一个数 k,保证数组长度是 k 的倍数。 然后要你把数组分成 k 个集合,定义一个分法的价值是它 k 个集合的极差之和,然后要你找价值最小的分发,输出其价值。 思路 考虑从小到大枚举数字。 考虑先把 \(k\) 个集合弄出来,

  • CSP-J2021-10-25 14:00:47

    \(T1\) 数论,比较好想。 #include <bits/stdc++.h> using namespace std; long long a, b, c; long long ans; int main() { scanf("%lld%lld%lld", &a, &b, &c); if(c - b >= a) { printf("%lld\n", a - 1); return 0; }

  • P2375 [NOI2014] 动物园2021-10-17 19:31:43

    【题意】 求一个字符串的num数组,表示1-i的即使前缀也是后缀且不重叠的串的个数 【分析】 考虑不断跳nxt数组,如nxt[i],nxt[nxt[i]].... 直到跳到长度小于i的一半的时候开始计数那么就得到了num数组 可是这样做的最坏时间复杂度仍然是$O(n^2)$,继续考虑优化,即减少重复递归 现在正常计

  • 洛谷P2831 [NOIP2016 提高组] 愤怒的小鸟——状压dp、预处理2021-10-16 17:04:53

    题目链接 题目:愤怒的小鸟 思路过程 数据范围非常小,\(n\leq 18\),可以考虑指数级时间复杂度的算法。 借鉴曼哈顿路径的状压dp算法,可以设计出状态:\(f(i)\)表示状态为\(i\)时用鸟最小数。 状态转移很好想,预处理一下可以做到\(O(n^2)\)转移 时间复杂度\(O(2^n n^2)\) 完整代码 #include

  • NOI2017 蚯蚓排队2021-10-08 20:02:24

    发现自己哈希的无数个问题…… 首先蚯蚓可以用链表维护这个序列。 然后发现 \(k\) 很少,意味着每次合并或删除所动的子串数量非常少。这启发我们可以把所有出现的长度 \(\le k\) 的子串全部通过哈希塞进一个桶里面,然后查询的时候我们直接再桶中查询。 对于如何维护这个桶,我们可以用

  • 【ybtoj高效进阶 21253】序列修改(分类讨论)(set)(树状数组)2021-10-07 13:30:36

    序列修改 题目链接:ybtoj高效进阶 21253 题目大意 给你一个序列,然后一个序列的费用是每个前缀的大小乘里面的数字种类的和。 然后你可以至多修改一个数,费用是原来到现在的绝对值,要你最小化序列费用和修改费用的和。 思路 首先我们可以简单算出一开始不修改的费用,然后考虑修改

  • 模拟64 考试总结2021-10-04 07:00:06

    咕 咕 咕 考试经过 题目基本不会,于是猛冲暴力 T1看见同余不会,狂写部分分;T2看见字符串不会,哈希乱搞;T3看见矩阵不会,暴力走人;T4啥玩意看不懂,果断弃掉 60+70+30+0=160,算是冲满了,rk6 T1.三元组 其实压根不是个数论题。。。 你发现根本想不出任何数论技巧,所以考虑放弃而把它做成数据结

  • CF1479B Painting the Array2021-10-03 11:32:04

    CF1479B1 Painting the Array I CF1479B1 Painting the Array II 题意: 本题与 CF1480D2 的唯一区别是本题询问最大可能解. 给 定 一 个

  • CF986A2021-09-26 13:00:18

    今天中午把这个写了,BFS就可以收尾了。 再也不可以咕到明天了!再咕我就是大鸽子! 进入正文: 有一定难度的BFS! 说白了,有难度的BFS就只有这几种情况吧(个人认为): 1.需要逆向解决(即多起点单终点) 经典例子:P1332 血色先锋队 2.不一样的障碍物(如动态,传送门等) 经典例子:P1825 [USACO11OPEN]Corn

  • KMP2021-09-25 21:31:40

    这玩意我讲不明白,想看的话去别人的博客里面看/QAQ KMP思想 KMP算法是一种看模式串在主串中出现次数的优化算法 复杂度为O(n+m) 思路就是可以将一些不必要的比较跳过去 代码: void KMP(){ int j=0; for(int i=1;i<=len1;i++){ while(j>0&&(j==len2||s2[j+1]!=s1[i]))

  • sxy 的模板库2021-09-17 08:35:32

    sxy 的模板库 头 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; int read() { int x = 0, f = 1; char ch = getchar(); while (!isdigit(ch)) { if (ch == '-') f = -1; ch = getchar();

  • 洛谷 P1972 [SDOI2009]HH的项链2021-09-15 13:03:19

    洛谷 P1972 [SDOI2009]HH的项链 主席树+区间不同数字个数

  • KMP相关题目2021-09-10 20:01:44

    \(KMP\)专题 [POI2006]OKR-Periods of Words 解题思路: 求成为两倍前缀的前缀长度之和,那么我们就用 \(F(nxt)\) 数组的性质: 前缀 \(i\) 的长度为 \(F[i]\) 的前缀和后缀是相等的 说明,如果有 \(i\) 一个公共后缀长度为 \(j\) ,那么这个前缀 \(i\) 就有一个周期为 \(i-j\). 那么我们就

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

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

ICode9版权所有