ICode9

精准搜索请尝试: 精确搜索
  • P2375 [NOI2014] 动物园2022-08-30 14:04:15

    定义字符串的前 \(i\) 个字符组成的字符串中一最大子串 \(T\) 即使前缀也是后缀,且 \(|T|\leq i/2\) ,则定义 \(num[i]=|T|\) ,求 \(num[i]+1\) 之积 \(mod\) 1000000007。 \(|S|\leq 10^6\) 。 熊猫:“对于字符串S的前i个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除

  • 逆序对解法2022-08-02 09:06:40

    例题 原题链接:https://www.acwing.com/problem/content/790/ 给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。 暴力解法 不推荐,两重循环遍历,O(n^2)的复杂度,容易T

  • P1892团伙 -- 并查集datastructure2022-07-14 20:31:07

    #include <bits/stdc++.h> using i64 = long long; int fa[1000005],b[1000005]; int find(int x){ return (fa[x] == x ? x : (fa[x] = find(fa[x]))); } void merge(int x,int y){ fa[find(x)] = find(y); } int main(){ std::ios::sync_with_stdio(fal

  • AT2008 書き換え(Rewrite)题解2022-06-25 11:04:23

    题意概述 给出 \(n\) 和 \(m\)。分别表示物品数量和背包容量。 接下来 \(n\) 行,分别输入 \(v_i\) 和 \(w_i\) (题目中称 \(t_i\)),表示物品价值和物品重量。 解题思路 一道简单的 01 背包 ,需要判断两种状态,分别是 取 或 不取。如果取到这个物品,可以增加价值,但会减少背包容量。 我们

  • 高精度加法与乘法问题2022-02-06 20:31:53

    高精度乘法: 问题来源:https://ac.nowcoder.com/acm/contest/118/E 题目描述: Kirai聊天的时候非常喜欢发“233”,“233”来源于猫扑表情第233号,是一张捶地大笑的表情。 Kirai每当看到很好玩的消息的时候总会回一串“2333…”。 Kirai其实十分高冷,他发现了这个问题。为了不希望

  • frosh week HDU 树状数组求逆序数2022-01-11 00:00:06

    解析看这里一文教你树状数组如何求逆序数https://blog.csdn.net/zlq7777/article/details/122417173  ans+=i-getsum(t[i].id);sum += query(reflect[i]) - 1;都行,两种逆序数计数方法选择而已 #include<bits/stdc++.h> using namespace std; int n; typedef long long ll; in

  • To_Heart—题解——[CQOI2017]老C的方块2021-12-10 19:03:02

    这里提供一种更好想,但是点会多一些的做法 首先我们很容易就能想到染色 染色 我们按照以上方法染色,然后发现从 1 出发,沿着 1->2->3->4 的路线,可以把我们所有需要删除情况都涵盖完。 所以我们现在就只需要建图了 建图 因为我们可以沿着 1->2->3->4 的路线走完所有的情况,那么就可以

  • 201809-2 试题名称: 买菜 C++2021-09-19 11:05:12

    样例输入 4 1 3 5 6 9 13 14 15 2 4 5 7 10 11 13 14 样例输出 3 第一回合 只有90分,只要是相交的时间段,都做一个标记记为`w[i] 找时间补上(T_T) #include<iostream> #include<algorithm> using namespace std; #define MAX_N 1000005 int w[1000005]={0}; int main() {

  • Period [HDU 1358]2021-08-05 12:32:56

    题目: For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for each i (2 <= i <= N) we want to know the largest K >

  • 「CEOI2017」Mousetrap2021-06-27 19:32:28

    [CEOI2017]Mousetrap 题解 题意 \(~~~~\) 我并不能概括,所以这个板块只是来走过场的。 真实用意是来开 题目传送门 题解 \(~~~~\) 终于过来补档了,很妙的题(不看题解就想不出来,来记录一下。 \(~~~~\) 将陷阱房当作整棵树的根,那么老鼠就会尽量向下走,同理管理者会尽可能阻止老鼠这一

  • [NEERC2015]Adjustment Office2021-04-10 16:35:30

    题意   题意需认真读 每次去 行/列 是动态要更新值的 .luogu标为橘题但是我还是思路有些乱 我们可以找到一个式子来求值  $ ( n+1 ) * n/2 - l + ( n - sy ) $和 $ (1 + n ) * n/2 - r + f * ( n - sx )$ 至此可以求出此列的值 所以要统计之前删去 行和列数 以及打标记 #includ

  • P7073 表达式 题解2020-12-26 16:03:46

    噫,我A了! 虽然有题解的帮助 这个题思路不难,但编出来非常难。 题解(正文) 把每个式子想象成一个树的节点,TREE结构。每个变量直接是个数值。 例如: ​ x1 & x2(这可以想象成一个节点,是

  • [Luogu] CF364D Ghd2020-11-14 08:34:50

    Description 选出\(\ge\lceil\frac{n}{2}\rceil\)个数字使得他们的最大公约数最大。 Solution 神奇的随机化。 注意到一定会选\(\ge\lceil\frac{n}{2}\rceil\)个数,那么在原序列中随机选一个数,在答案序列里的概率为\(\frac{1}{2}\)。那么我们连续选\(10\)次,全错的概率就只有\(\frac

  • 最长上升子序列(最长递增子序列)LIS2020-09-21 16:33:58

    1、最长不增子序列,拦截导弹 #include<cstdio> #include<iostream> #include<string> #include<cstring> #include<cmath> #include<stdlib.h> #include<algorithm> #include<vector> #include<queue> #include<stack> #inc

  • P3518 [POI2011]SEJ-Strongbox2020-09-11 11:03:25

       链接 https://www.luogu.com.cn/problem/P3518 题解: 玄学 显然 gcd(x,n)是答案,   考虑如果一个数y是答案 ,那么2y 3y 4y是答案 然后考虑所有答案的GCD  下同 发现如果最小的答案是y,那么所有答案就是2y 3y 4y,因为最小的GCD也是答案,即这时候y就是最小的GCD 未完待续     

  • 【NOIP2013】火柴排队 题解(贪心+归并排序)2020-05-30 23:02:57

    前言:一道水题。 ----------------------- 题目链接 题目大意:给出数列$a_i$和$b_i$,问使$\sum_{i=1}^n (a_i-b_i)^2$最小的最少操作次数。 首先,如果两个数列相同位置的数排名相同,那么符合题意。现在我们证明一下: 证明:$a_i<a_j,b_i<b_j,(a_i-b_i)^2+(a_j-b_j)^2<(a_i-b_j)^2+(b_i-a_j

  • Wannafly Camp 2020 Day 2A 托米的字符串2020-02-04 21:51:42

    #include <bits/stdc++.h> using namespace std; const int N = 1000005; int n; char str[N]; int a[N]; int main() { scanf("%s",str+1); n=strlen(str+1); for(int i=1;i<=n;i++) { if(str[i]=='a' || str[i]=='e

  • 动画 | 什么是计数排序?2020-01-27 14:55:50

    我们知道快速排序的时间复杂度期望值是O(nlogn),其中O(logn)是利用了二分法进行远距离比较和交换元素的位置。如果不去做比较交换计算,有没有可能有一种算法,它的时间复杂度期望值能降低到O(n)线性时间呢? 我们可以有这样的思路,对于任何一个待排序数组的元素x,如果知道了待排序数组中有

  • codeforces 1288 E. Messenger Simulator 莫队-区间不同元素的个数2020-01-15 22:00:50

    题目链接:https://codeforces.com/contest/1288/problem/E 题目大意: #include <bits/stdc++.h> #define LL long long using namespace std; #define id(x) ((x-1)*Len+1) struct node{ int L, R, k; }q[1000005]; int pos[1000005]; int a[1000005]; int flag[1000005

  • 【Luogu P1972】HH的项链2019-11-05 09:57:41

    Luogu P1972 一开始非常naive随便打了个树状数组统计就交上去了,然后不出意料的爆零了…… 然后删一删改一改过了。 重点:对于区间[1,r]中重复出现的数,我们只需要关心最右边那一个是否在[l,r]中就可以了。 具体思路在代码注释中 #include<cstdio> #include<algorithm> using namespa

  • 子串查找2019-10-30 18:55:43

    https://loj.ac/problem/103 题目描述   给定一个字符串\(A\)和一个字符串\(B\),求\(B\)在\(A\)中的出现次数。\(A\)和\(B\)中的字符均为英语大写字母或小写字母。 思路   显然这是道字符串匹配题,我们可以用\(KMP\)求解。但这里我主要想介绍一种更简单的方法:字符串\(Hash\)。我

  • Power Strings2019-10-30 18:50:32

    https://loj.ac/problem/10035 题目描述   给出一个字符串,求它最多由多少个相同的字符串重复链接形成。 思路   其实题目就是要我们求出最小循环节的长度,再用字符串长度除以这个长度就是答案。求最小循环节显然用\(KMP\)就可以,但这里我们也可以用字符串\(Hash\)做。我们只需要

  • [SDOI2016] 生成魔咒 - 后缀数组,平衡树,STL,时间倒流2019-10-25 12:53:07

    [SDOI2016] 生成魔咒 Description 初态串为空,每次在末尾追加一个字符,动态维护本质不同的子串数。 Solution 考虑时间倒流,并将串反转,则变为每次从开头删掉一个字符,即每次从后缀集合中删掉一个后缀。 预处理出后缀数组和高度数组后,用平衡树维护所有后缀集合(按照后缀排序),要删除一个后

  • 子串查找2019-10-02 21:03:44

    https://loj.ac/problem/103 题目描述   给定一个字符串A和一个字符串B,求B在A中的出现次数。A和B中的字符均为英语大写字母或小写字母。 思路   显然这是道字符串匹配题我,我们可以用KMP求解。但这里我主要想介绍一种更简单的方法:字符串Hash。我们去一个基数b,把字符串看做b进制

  • 线段树 :单点修改,区间查询2019-09-09 20:52:54

    题目描述 思路 代码 #include <cstdio> #include <cstring> int n, m; struct { int at[1000005]; long long int arr[1000005 << 2]; void build(int k, int l, int r) { if (l == r) { arr[k] = at[l]; return;

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

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

ICode9版权所有