ICode9

精准搜索请尝试: 精确搜索
  • D. Maximum Sum on Even Positions(翻转1次,求最大偶数位和)2020-07-11 17:37:57

    题:https://codeforces.com/contest/1373/problem/D 题意:翻转1次,求最大偶数位和 分析:先把偶数位的值加起来,然后只能翻转一次,那么要是有翻转奇数位的贡献只能是+a[i]-a[i-1]或+a[i]-a[i+1](这是对于翻转的整个子区间来说的),那么只要求贡献区间的最大子段和即可 #include<bits/stdc

  • 暴力+组合数学+预处理+双指针——cf 1371E1+E22020-07-11 11:08:10

    E1,暴力+组合数学 对每个x都求一遍就行 /* 在位置i的糖果数量是x+i-1, 所以先把minx和maxx确定下来 当a数组递增排列时,minx=max(minx,ai-i+1) 当a中最大值出现在第一位时,取到maxx=ai x遍历范围[max(0,minx),max(maxx,n)], 将ai-x,然后ai只能出现在i及以后,那么从大到小求一个乘积,

  • 【BZOJ3307】雨天的尾巴 题解(树链剖分+树上差分)2020-06-20 16:52:05

    题目链接 题目大意:给定一颗含有$n$个结点的树,每次选择两个结点$x$和$y$,对从$x$到$y$的路径上发放一带$z$类型的物品。问完成所有操作后每个结点发放最多的时哪种物品。 普通的树链剖分貌似也可以做这道题,可以记录一个$c$数组用来记录结点中每种物品的个数,然后暴力乱搞。空间可能会

  • 树链剖分模板-2716-【ZJOI2008】树的统计2020-06-18 20:06:00

    题目 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。   我们将以下面的形式来要求你对这棵树完成一些操作:   I.CHANGE u t : 把结点u的权值改为t   II.QMAX u v: 询问从点u到点v的路径上的节点的最大权值   III.QSUM u v: 询问从点u到点v的路径上的节点的权

  • splay区间模板-1331-序列终结者12020-06-18 19:53:19

    题目链接 #include <iostream> #include <cstdio> #include <algorithm> #define maxn 100005 using namespace std; int n,m; int val[maxn],num[maxn],siz[maxn],ch[maxn][3],fa[maxn],maxx[maxn],sum[maxn],flag[maxn],cnt,root; void pushup(int x) { siz[

  • CodeForces-327A-Flipping Game2020-06-01 09:06:18

    题意: 给出一个01串,要求只能翻转一次区间(在翻转的区间内,0变成1,1变成0),问翻转后1的数量最大是多少。   思路: 如果全部都为0肯定全部翻转,如果全部为1肯定只翻转一次,所以默认max应该为-1而不是-inf; 算出一段区间内0和1的个数差值cnt,与后序数字进行比较,不断更新最大值maxx和cnt。   AC

  • CF1037H Security(SAM+线段树合并)2020-05-27 12:05:44

    题目链接 https://codeforces.com/contest/1037/problem/H 题意 给出一个字符串\(S\) 给出\(Q\)个操作,给出\(L,R,T\),求字典树最小的\(S1\),使得\(S1\)为\(S[L..R]\)的子串,且\(S1\)的字典树严格大于\(T\)。输出这个\(S1\),如果无解输出\(-1\)。 思路 字典序尽量小又要严格大于\(T\),则

  • CF R 633 div 1 1338 C. Perfect Triples 打表找规律2020-04-16 09:02:28

    LINK:Perfect Triples 初看这道题 一脸懵逼.. 完全没有思路 最多就只是发现一点小规律 即。 a<b<c. 且b的最大的二进制位一定严格大于a b的最大二进制位一定等于c. 但是这对解题没有任何用处。 考虑打个表看看有什么规律没有. 通过这道题 我承认 打表找规律也是一个技术活. 虽然能

  • SPOJ1812 LCS2 - Longest Common Substring II【SAM LCS】2020-04-15 12:02:26

    LCS2 - Longest Common Substring II 多个字符串找最长公共子串 以其中一个串建\(SAM\),然后用其他串一个个去匹配,每次的匹配方式和两个串找\(LCS\)一样,就是要记录\(SAM\)的每个状态和当前匹配串匹配的最大值\(maxx\),这个在匹配完一个串之后需要通过\(parent\)树上传最大匹配值,同

  • Zut_round 6 部分题题解2020-04-15 09:40:15

    A - LIS O(n^2) 模板   最长上升子序列,两种做法     1,O(n^2)   两层循环,依次遍历     2,O(nlogn)   一层循环,用二分 #include<stdio.h> #include<algorithm> using namespace std; const int maxx=100019; int a[10109],ans[10109]; int main() { int i,j,

  • bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp2020-04-05 17:57:08

    LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=1000003或p=1019663265 考虑dp......(没啥意义. 要求出 从(0,0)到(n,m)不经过一个障碍点的方案数 显然需要容斥. 所有方案C(n+m,n). 还是考虑dp

  • 落谷P1114 “非常男女”计划2020-03-29 16:07:23

    原题链接:https://www.luogu.com.cn/problem/P1114   对于这道题,可以处理出来每前i个数男生数量比女生数量多的数k,在用b1[k]存储最小的i使得男生比女生多k个,b2[k]存储最大的i使得男生比女生多k个。 然后计算所有的k,b2[k]-b1[k],求出最大值,即为最终结果。 代码: c: #include<stdi

  • bzoj 3309 DZY Loves Math2020-03-23 11:05:24

    LINK:DZY Loves Math 一道比较有意思的数论题 原谅我的智障多调了40min. 可以简单的推式子推出 答案为$\sum^n\frac\frac\sum{x|w}\mu(x)f(\frac)$ f函数定义和题目中一致。 考虑后面前缀和怎么求 发现光求f(x)复杂度都比较高。如果我们把f(x)求出再调和级数预处理 那得GG 1e7过不

  • C. Frog Jumps2020-03-16 13:04:31

    C. Frog Jumps 题意 一行字符串由L和R组成,数组从1标号到n。青蛙从0的位置开始起跳,想到达n+1的位置,当他跳到L的时候只能往左跳,跳到R的时候只能往右跳,跳的范围由你来定。问最小的d是多少 思路 d = 连续最长的L+1。 代码实现 #include<bits/stdc++.h> using namespace std; int main(

  • 水壶问题-盲目搜索问题2020-03-13 15:06:19

    人工智能课的一个小练习,直接DFS暴力搜索即可。 问题背景:给定两个水壶,一个可装4加仑水,一个能装3加仑水。水壶上没有任何度量标记。有一水龙头可用来往壶中灌水。问题是怎样在能装4加仑的水壶里恰好只装2加仑水。 这个问题的求解方法已在教材中给出。下面只是给出程序实现。 /

  • AC自动机模板题2020-03-10 23:52:54

    P3808 AC自动机(简单版) 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过。 #include<bits/stdc++.h> using namespace std; const int maxx = 1e6+10; int trie[maxx][26],tot; int sum[maxx],fail[maxx]; void Insert(string s) { int rt=0; for(int i=0;i<s.s

  • 2014年第五届蓝桥杯C++B组I题2020-03-06 17:05:51

    2014年第五届蓝桥杯C++B组I题 地宫取宝 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明

  • codeforces 上的小题2020-03-05 23:03:07

    CF1305C    题解:    我们发现虽然 $n$ 很大,但是模数很小,所以相当于 $n$ 个数对 $m$ 取模后不能有重复数字.    那么其实这个 $n$ 最大也就是 $m$ ,直接 $O(m^2)$ 暴力算就行了.  code:  #include <bits/stdc++.h> #define ll long long #define N 2004 #define set

  • hdu 1231 最大连续子序列2020-03-03 23:57:38

    Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...,Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。在今年

  • New Year and Ascent Sequence2020-03-03 18:13:04

    #include <iostream> #include <cstdio> #include <vector> #include <algorithm> using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const int idata=100+5; int i,j,k; int judge,flag; vector<int> maxx,minn; int n

  • F 采蘑菇的克拉莉丝2020-02-24 10:55:47

    这是一道树链剖分的题目; 很容易想到,我们在树剖后,对于操作1,直接单点修改; 对于答案查询,我们直接的时候,我们假设查询的点是3,那么我们在查询的时候可分为两部分; 第一部分:查找出除3这颗子树以外有多少个蘑菇,然后将蘑菇数*此路径; 然后再一一枚举3这颗树的各个子树即可; 这种做法在牛客上

  • Heavy Transportation2020-02-19 18:43:23

    链接:https://vjudge.net/contest/357138#problem/F N个点,M条边,每条边有权值。求一条1号点到N号点的路径,要求使得路径中的边权最小值最大。 Input 多组输入,第一行给一个T。 每一组第一行给两个数n和m。(1 <= n <= 1000) 接下来m行,每行三个数u,v,w代表路径的两个端点与边权。 (1

  • 最长公共子上升序列(LCIS)2020-01-31 10:00:30

    最长公共子上升序列    AC_Code 1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #include <cstring> 5 #include <string> 6 #include <cmath> 7 #include <cstdlib> 8 #include <algorithm> 9 using

  • Codeforces 1053 B - Vasya and Good Sequences2020-01-29 16:06:46

    题: 思路: 满足异或值为0的区间,必须满足一下条件: 1.区间中二进制1的个数和为偶数个; 2.区间二进制1的个数最大值的两倍不超过区间和. #include<bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; const int M=1e6+5; ll a[10],countt[M]; int main

  • AGC40.Two Contests2020-01-24 18:54:41

    题意 \(n\)段区间,要把他们分到两个不同的集合\(S,T\)中,不能有剩余,每个区间只能在一个集合里,令\(S\)中所有区间的交的长度为\(ls\),\(T\)中所有区间的交为\(lt\),求\(max\{ls+lt\}\)。 题解 找到 \(L\) 最大的区间 \(p\) 和 \(r\) 最小的区间 \(q\),那么只有两种情况: \(1.\) \(p,q\)

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

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

ICode9版权所有