思维+双指针+环——cf1244F】的更多相关文章

/* 可以发现一个性质:连续两个相同色块永远不会变色 继而可以发现,这个色段每次迭代都向左向右拓展长度1,直到撞上其他扩张的色段 所以预处理出所有连续色段,然后对于所有不在色段里的点,我们可以预测其最终的颜色: 其本身每次迭代改变一次颜色,如果k>= 离其最近的那个色段到其的距离Len,那么其就会被那个色段覆盖 那么就要预处理出这些点两侧最近的色段距离和颜色 由于是环形,所以扩张两倍即可来求边界 */ #include<bits/stdc++.h> #include<vector&…
https://codeforces.com/contest/1075/problem/C 题意 一个宽为1e9*1e9的矩阵中的左下角,放置一个车(车可以移动到同一行或同一列),放置一些墙,竖的占据一列,横的有一的长度,问车从最下角走到第1e9行最少拆多少面墙? 思路 看了看数据范围以为是一道离散化的题,但是发现车可以往左走 然后再明确了一下题意,墙是永久拆去的,反应到可以优先拆竖着的墙,然后假如剩下横着的墙比竖着的墙少的话,可以直接拆横着的墙 写之前看了一下题意,说横着的墙不会有交点,然后大…
Medicine faculty of Berland State University has just finished their admission campaign. As usual, about 80%80% of applicants are girls and majority of them are going to live in the university dormitory for the next 44 (hopefully) years. The dormitor…
Kirinriki Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2169    Accepted Submission(s): 879 Problem Description We define the distance of two strings A and B with same length n isdisA,B=∑i=0n−…
题意 https://vjudge.net/problem/CodeForces-1007A 对一个序列重排,使得新的数比原来的数大对应的位置个数最多. 思路 举个栗子,比如1 2 2 3 3 3 3 4 5,那么对于一个数,肯定是用比他大的最小的去覆盖他,这样后面较大的数就有更多的机会被覆盖了.比如用2覆盖1,但不能用5覆盖1,因为这样的话4就不会被覆盖了.再考虑乱序的,比如 2 1 3 5 3 3 4 3 2,一样的,用2覆盖1,用3覆盖2,和有序的序列其实并无区别,所以我们直接拍个序,用双…
题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间内的最小值,存到v中,问每次扫完后v中的数是否能构成一个序列. 题解:我们首先特判区间长度\(1\)和\(n\)的情况,这很简单,然后我们从\([n-1,2]\)枚举区间长度(也就对应着我们枚举每次选的数\(1,2...n\)),不难发现,当区间长度为\(n-1\)时,我们要选两个数,且这两个数只能…
Bobo 有一个 n 个点,m 条边的有向无环图(即对于任意点 v,不存在从点 v 开始.点 v 结束的路径). 为了方便,点用 1,2,…,n 编号. 设 count(x,y) 表示点 x 到点 y 不同的路径数量(规定 count(x,x)=0),Bobo 想知道     除以 (10 9+7) 的余数. 其中,a i,b j 是给定的数列.   Input 输入包含不超过 15 组数据. 每组数据的第一行包含两个整数 n,m (1≤n,m≤10 5). 接下来 n 行的第 i 行包含两个整…
https://codeforces.com/contest/1060/problem/C 题意 给两个数组,a数组有n个元素,b数组有m个元素,两个数组元素互相相乘形成n*m的矩阵,找一个子矩阵,元素和<=x,子矩阵的面积尽量大,求这个子矩阵的面积大小 思路 一开始往二维前缀和+暴力+查询之类想了,没观察规律,复杂度怎么想都不对 规律其实就是 子矩阵的和等于两个数组的连续子序列和相乘,面积大小等于子序列长度相乘 即要在两个数组中找出两个连续的子序列,保证他们的和相乘<=x的情况下,长度的乘积…
题意 https://vjudge.net/problem/CodeForces-103B 很久很久以前的一天,一位美男子来到海边,海上狂风大作.美男子希望在海中找到美人鱼 ,但是很不幸他只找到了章鱼怪. 然而,在世界的另一端,人们正在积极的收集怪物的行为信息,以便研制出强大的武器来对付章鱼怪. 于地震的多发,以及恶劣的天气,使得我们的卫星不能很好的定位怪物,从而不能很好的命中目标. 第一次射击的分析结果会反映在一张由n个点和m条边组成的无向图上.现在让我们来确定这张图 是不是可以被认为是章鱼怪…
Almost Acyclic Graph CodeForces - 915D time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a directed graph consisting of n vertices and m edges (each edge is directed, so it can…
题意 给一个数列\(a​\),定义\(f(l,r)​\)为删除\(a​\)中所有满足\(l<=a_i<=r​\)的数后的数列,问有多少对\((l,r)​\),使\(f(l,r)​\)是一个非递减的数列 分析 若\(f(l,r)​\)合法,则\(f(l,r+1),f(l,r+2),\dots,f(l,x)​\)也都是合法的 把每个数在\(a​\)中第一次出现的位置\(S​\)和最后一次出现的位置\(T​\),若\(f(l+1,r-1)​\)合法则满足 \(max(T_{a_1},T_{a_2},…
题意 : 给出 N 个点,以及 M 条双向路,每一条路的权值代表你在这条路上到达终点需要那么时间,接下来给出 W 个虫洞,虫洞给出的形式为 A B C 代表能将你从 A 送到 B 点,并且回到 C 个时间点之前,也就是时光倒流了 C 个时间并且此时你在 B 点,现在问你是否能够在图上的这些点中走,使得在某一个点刚好碰到之前的自己 分析 : 冷静分析一下,只要是有负权回路的某一条边属于虫洞的,那么肯定是能在这个环上一直绕,直到遇到之前的自己,如果将虫洞看作一条负权边的话,那么问题就变成了只要存在负…
题意:一个棋盘上有一些"车",现在要让这些"车"跑到左倾斜的对角线上,每次可以移动一个棋子,但是棋盘的任意时刻都不能出现一个"车"能吃另一个"车"的情况.问最少需要移动多少次才能满足条件.("车"的个数小于对角线的格子数). 题解:对于某个棋子的位置\((x,y)\),我们可以\(x->y\)来建边,如果棋子已经在对角线上了,那么我们不用移动它们,也就不需要建边,否则一个棋子要么移动\(1\)次要么移…
Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有队员都应该满足: A * ( height – minH ) + B * ( speed – minV ) <= C 其中A和B,C为给定的经验值.这个式子很容易理解,如果一个球队的球员速度和身高差距太大,会造成配合的不协调. 请问作为球队管理层的你,在N名选秀球员中,最多能有多少名符合条件的候选球…
来源于:http://www.cnblogs.com/jiqing9006/p/3344221.html 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有广泛的应用. 2.案例 3.计算机语言只是一种工具.光学习语言的规则还不够,最重要的是学会针对各种类型的问题,拟定出有效的解决方法和步骤即算法.有了正确而有效的算法,可以利用任何一种计算机高级语言编写程序,使计算机进行工作.因此,设计算法是程序设计的核心. 对同一个问题,可以有不同的解题方法和步骤.…
Leetcode解题思想总结篇:双指针 1概念 双指针:快慢指针. 快指针在每一步走的步长要比慢指针一步走的步长要多.快指针通常的步速是慢指针的2倍. 在循环中的指针移动通常为: faster = faster.next.next; slower = slower.next; 2 应用 2.1. 用来判断链表是否有环以及寻找环入口 Linked List Cycle Linked List Cycle II 是否有环:快慢指针思想,注意循环条件:(fast != null) && (fas…
前文废话:这个问题据说是腾讯之前的一道笔试题,由于当时没认真看,现在记不清这种矩阵是不是叫"蛇形回环矩阵"......请大家直接看图1,就是那个样子的矩阵. 问题描述:输入一个N,实现N×N的蛇形回环矩阵(即图1类型) (N=5时的蛇形回环矩阵) 我们先把N为奇数和N为偶数的情况分开.先来看N=3.5.7时的该类矩阵是什么情况:               看上去彼此之间并无规律,对这道题最简单粗暴的解法似乎就是构建一个二维数组,然后按人的正常思维向里填数字构建. 但是--如果用(最大…
原文地址:各种图(流程图,思维导图,UML,拓扑图,ER图)简介 流程图 1.定义:流程图是对过程.算法.流程的一种图像表示,在技术设计.交流及商业简报等领域有广泛的应用. 2.案例 3.计算机语言只是一种工具.光学习语言的规则还不够,最重要的是学会针对各种类型的问题,拟定出有效的解决方法和步骤即算法.有了正确而有效的算法,可以利用任何一种计算机高级语言编写程序,使计算机进行工作.因此,设计算法是程序设计的核心. 对同一个问题,可以有不同的解题方法和步骤.例如,求1+2+3+…+100,可以先进…
洛谷题目传送门 AC自动机入门--yyb巨佬的博客 AC自动机入手经典好题(虽然年代久远) 有了fail指针,trie树就不是原来的树型结构了,我们可以把它叫做trie图,由父节点向子节点连的边和fail代表的边构成(都是单向边). 最模板的AC自动机,就是直接匹配字符串.然而这题思维并非如此简单. 来一波逆向思维.假设我们构造出了一个无限长的安全代码,再拿到AC自动机上匹配,会发生什么? 没错,当我们一位一位地匹配的时候,我们会发现,永远都不会跳到某个病毒代码段结尾的位置(以后把这里称作危险节…
题目:https://loj.ac/problem/2547 一条树边 cr->v 会被计算 ( n-siz[v] ) * siz[v] 次.一条环边会被计算几次呢?于是去写了斯坦纳树. #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define ll long long using namespace std; int rdn() { ;;char ch…
洛谷题目传送门 神仙思维题还是要写点东西才好. 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移. 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一枚棋子,每次可以将棋子移向相邻的空位,目标状态是树的偶数层的所有点上都有棋子. 这样的互换总次数有没有一个下界呢? 我们求出\(a_i\)表示点\(i\)子树中棋子数量与空位数量之差(可以是负数),那么\(i\)的父边就至少要交换\(|a_i|\)次. 为什么呢?子树里面空位比棋子少的话,肯定要通过…
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to.…
Given a linked list, determine if it has a cycle in it. To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in…
原文链接 https://www.cnblogs.com/cly-none/p/9813163.html 题意:给出初始序列\(a\)和目标序列\(b\),都有\(n\)个元素.每次操作可以把\(a\)中的一个元素替换为\(a\)中所有元素的异或和,问最少操作多少次,把序列\(a\)变成序列\(b\),或判断无解. \(n \leq 10^5\) 首先,这个"替换为所有元素的异或和",其实就是一开始有\(v\)为\(a\)中所有元素异或和,每次操作把\(a\)中某个元素与\(v\)交换…
首先将完全相同的边的权值累加.考虑这样一种trick:给边确定一个方向,由度数小的连向度数大的,若度数相同则由编号小的连向编号大的.这样显然会得到一个DAG.那么原图的三元环中就一定有且仅有一个点有两条入边了.并且每个点的出度不会超过√m,因为假设一个点连出了x条边那么其所连向的每个点也至少会有x条出边.先将每个点的所有出边按终点编号排序.然后枚举一条边,对其两端点的出边用双指针计算一下其中有多少重复点即可.这样每个环只会被计算一次.复杂度O(mlogm+m√m). 没地方交所以懒得写了.…
题意 题目链接 Sol 非常有思维含量的一道题,队爷的论文里介绍了一种\(N \sqrt{N}\)的暴力然鹅看不懂.. 看了一下clj的\(O(nlogn)\)的题解,又翻了翻题交记录,发现\(O(n)\)的做法也不是特别难.. 首先考虑所有两端颜色相同的非树边.直接对它的数量讨论: 若为\(0\),那么删哪一条都可以 若为\(1\),那么只能删该奇环上的边 若\(>1\),所有的非树边都不能删(不管怎么删都会有一个奇环),那么考虑所有的树边,一条树边能被删掉当且仅当:所有奇环都经过了这条边 且…
转载请注明原文地址http://www.cnblogs.com/LadyLex/p/8536399.html 听说今年省选很可怕?刷题刷题刷题 省选已经结束了但是我们要继续刷题刷题刷题 目标是“有思维难度的DP题”! 一,uoj316 这个不用多说……NOI2017的D1T3,难度肯定是有的 个人觉得那个dp方程难想…… #include <cstdio> #include <algorithm> #include <cstring> using namespace s…
1 [抄题]: 给定一个链表,判断它是否有环. [思维问题]: 反而不知道没有环怎么写了:快指针fast(奇数个元素)或fast.next(偶数个元素) == null [一句话思路]: 快指针走2步,慢指针走1步. [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: [总结]: [复杂度]:Time complexity: O(n) Space complexity: O(1) [英文数据结构,为什么不用别的数据结构]: […
题目: Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? 题解: 这道题连带着II是很经典的,在看CC150时候,纠结这个问题纠结了很久.在读了很多网上资料还有书的讲解以及和别人讨论之后,对这个专题终于明白了. 这一问只需要判断链表是否有环. 当链表没有环时是很好判断的,让一个指针一直往后走,遇见null了自然就没有环. 而如…
Description A国正在开展一项伟大的计划--国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名优秀的边防战上作为这项计划的候选人.A国幅员辽阔,边境线上设有M个边防站,顺时针编号1至M.每名边防战士常驻两个边防站,并且善于在这两个边防站之间长途奔袭,我们称这两个边防站之间的路程是这个边防战士的奔袭区间.n名边防战士都是精心挑选的,身体素质极佳,所以每名边防战士的奔袭区间都不会被其他边防战士的奔袭区间…