ICode9

精准搜索请尝试: 精确搜索
  • CodeForces - 1253F Cheap Robot (多源Dijkstra+最小生成树)2020-03-05 10:54:34

    题意是有一张无向连通图,边带权,每走过一条边需要消耗一定的电量。有k个关键点可以充满电,问从一个关键点走到另一个关键点,需要的电池容量至少是多少。 首先可以分析一下极端情况: 1.k=2:问题转化成求两点间最短路 2.k=n:问题转化成求最小生成树 所以要把两者综合起来考虑。 首先对所有

  • 「AT2381 [AGC015C] Nuske vs Phantom Thnook」2020-02-20 15:50:59

    题目大意 给出一个01矩阵,这个矩阵有一个特殊的性质: 对于任意两个 \(1\) 之间最多只有 \(1\) 条由 \(1\) 构成的路径.每次询问给出一个矩形范围,查询在这个范围内的联通快个数. 分析 先从给出的性质出发,可以发现如果在所有相邻的 \(1\) 之间连上一条边(双向边)以后这个性质就转

  • 百练#1835宇航员2020-02-05 11:42:30

    描述 问题描述:   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇

  • dtoi4680 红黑兔2020-01-28 23:54:11

    题意:      给定一个字符串,长度小于等于500000。让你找一个二元组序列(l[i],r[i]),使得区间[l[i+1],r[i+1]]的字符串是区间[l[i],r[i]]的子串。求最长的序列长度。 题解:      首先有一个贪心的想法,第i个字符串肯定恰好比第i+1个字符串多一个字符。      考虑对于位置i,如何

  • 并查集模板2020-01-23 18:58:13

    const int N=120; int father[N]; int rank1[N]; void init(int Size) { for(int i=1;i<=Size;++i) father[i]=i,rank1[i]=0; } int Find(int x) { while(x!=father[x]) x=father[x]; return x; } bool Union(int x,int y) { int fx,fy;

  • poj 1611 :The Suspects经典的并查集题目2020-01-21 21:56:10

     Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to separate the suspects from others.   In the Not-Spreadi

  • P1605 迷宫(dfs,洛谷,java)2020-01-21 13:02:11

    洛谷链接:https://www.luogu.com.cn/problem/P1605 很基础的一道搜索题,适合入门 import java.util.Scanner; public class Main { static int[][] map=new int[10][10]; //地图 static boolean[][] temp=new boolean[10][10];

  • 文艺平衡树算法2020-01-20 16:06:08

    一、文艺平衡树解决什么问题 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 15\ 4\ 3\ 2\ 15 4 3 2 1,翻转区间是 [2,4][2,4][2,4] 的话,结果是 5 2 3 4 15\ 2\ 3\ 4\ 15 2 3 4 1。   二、文

  • 3806. 【NOIP2014模拟8.24】小X 的道路修建 (Standard IO)2020-01-13 20:40:32

      Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits   Description 因为一场不小的地震,Y 省n 个城市之间的道路都损坏掉了,省长希望小X 将城市之间的道路重修一遍。 很多城市之间的地基都被地震破坏导致不能修路了,因此可供修建的道路只有m 条。因为施

  • 并查集入门2020-01-11 22:41:02

    并查集思想是把相互之间有关系的事物捏成一块,即使形成通路,根据通路的数量得出所要结果,分成三部分来完成,一部分初始化,一部分查找祖宗节点,另一部分判断是否未同一祖宗,若是不作处理,否则将其中一个作为另一个的祖宗。查找祖宗时用路径压缩可以节省搜索时间 #include #include #i

  • Codeforces 1263D. Secret Passwords(并查集,思维)2019-12-04 12:58:23

    传送门 题意: 给n个字符串,如果任意两个字符串有一个字符相同,则他们相同即属于同一集合,问总共有几个集合 思路: 并查集,对于每个字符串,把每个字符与第一个字符合并,因为他们肯定在同一个集合(意思是每个字符串都当成ch[0],看有几个不同的),合并之后,for(1-26)以它为根的个数,即集合的个数,貌似

  • 旅行2019-11-06 18:51:43

    https://loj.ac/problem/2195 题目描述   给出一棵树,每个节点有权值和颜色,要求维护四个操作:\(①\)改变节点\(x\)的颜色为\(c\);\(②\)改变节点\(x\)的权值为\(w\);\(③\)询问从\(a\)到\(b\)的路径中颜色和\(a\)相同的点的权值和;\(④\)询问从\(a\)到\(b\)的路径中颜色与\(a\)相同的

  • CF766D Mahmoud and a Dictionary2019-10-08 21:04:35

    题面:https://www.luogu.org/problem/CF766D 本题直接开个map把字符串抽象成点,然后带权并查集就能解决了. Code: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<algorithm> #include<ctime> #include<

  • Zepto.js2019-10-06 22:04:10

    1.Zepto.js介绍 Zepto.js最初目标在移动端提供一个精简的类似jquery的js库。 Zepto.js的API类似jQuery,熟悉jQuery可以无缝迁移到Zepto.js Zepto.js增加了针对移动端的触摸和手势相关的事件 Zepto.js模块化做的很灵活,可以自定义组合模块 zepto默认是有五个模块的,分别为zepto、event

  • xsy 2412【BZOJ4569】【Scoi2016】萌萌哒2019-10-01 15:51:57

    Description   Description     一个长度为n的大数,用S1S2S3...Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2,r2,即两个长度相同的区间,表示子串Sl1Sl1+1Sl1+2...Sr1与Sl2Sl2+1Sl2+2...Sr2完全相同。比如n=6时,某限制条件l1=1,r1=3,l2=4

  • Navigation Nightmare——带权并查集(多权值)2019-10-01 14:53:13

    题目链接 题意: 给出n个农场,然后按时间依次给出m个关于农场相对位置的信息,之后会给出询问,问在t时刻,x到y的曼哈顿距离是多少。 题解: dx【i】维护 根节点到 i 的横坐标距离   dy【i】维护 根节点到 i 的纵坐标距离 并查集高效的地方就在于在使用Find(x)函数查找x的父结点的时候会把

  • Parity game——带权并查集2019-10-01 13:50:51

    题目链接 题意: 你一个字符串,由0和1组成,并且告诉你子串里面1的个数,假设前面的话都是对的,问你到哪一句和前面的话矛盾。 题解: 首先,发现n很大,但是问题数m不多,所以先离散化 d数组表示序列S的前缀和d[l~r]有偶数个1,等价于d[l-1]与d[r]奇偶性相同。 d[l~r]有奇数个1,等价于d[l-1]与d[r]奇

  • The Suspects——求联通块数量的模板题2019-09-29 21:06:55

    题目链接 题意: n个学生分属m个团体,一个学生可以属于多个团体。一个学生疑似患病,则他所属的整个团体都疑似患病。已知0号疑似患病,以及每个团体都有哪些学生构成,求一共有多少个学生疑似患病 题解: 很经典的并查集的题目,找一个num[]数组记录每一个以当前下标为根节点的集合的个体数目,

  • P3950[部落冲突]2019-09-26 18:51:23

    \(\text{这题是个树链剖分的板子题 (好像树剖跑的比 LCT 快)}\) \(\text{这题的操作 : 区间修改 区间查询}\) \(\text{我们考虑题目所说的没有重复的x所以我们不用判重直接干}\) \(\text{所以把每个加法操作即开战存在vector里面 然后结束了直接查询。。}\) \(\text{Yes No 是区间查

  • Cow and Snacks2019-09-18 17:00:36

    ​D. Cow and Snacks 参考:Codeforces 1209D. Cow and Snacks 思路:利用并查集,构建一个生成树,然后树的边数就是能够开心的客人的人数。用一个条件find(u)!=find(v)(我在代码里反了一下),来统计某一种味道的菜是否已经被吃掉,如果等于,则证明已经被吃掉。 代码: // Created by CAD on 2

  • BZOJ4668: 冷战 (并查集 + LCA)2019-09-16 13:56:21

    题意:动态给点连边 询问两个点之间最早是在第几个操作连起来的 题解:因为并查集按秩合并 秩最高是logn的 所以我们可以考虑把秩看作深度 跑LCA #include <bits/stdc++.h>using namespace std;const int MAXN = 5e5 + 5;int n, m, cnt;int fa[MAXN];int id[MAXN];int zhi[MAXN];i

  • 树的统计2019-09-15 11:02:53

    题目描述 思路 树链剖分模板 代码 #include <cstdio> #include <cstring> #define lc k<<1 #define rc k<<1|1 #define max(a, b) ((a) > (b) ? a : b) #define FOR(a, b) for(int i=a;i<=b;++i) const int MAX = 3e4 + 5; int n, ot, oa[20], inf = 0x3f3f3

  • TKIT微控制系统工具简介(基于ARM微控制器平台)2019-09-06 23:00:34

    TKIT : Task kit V566 简介 这是一个基于ARM微控制器平台的多种工具集合,所有代码均为C语言构成(基于KEIL工具开发)。与具体硬件环境无关联,符合标准C语言规则,通过少量外部函数与实际硬件对接。其核心架构为前后台任务管理。 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程

  • 游戏筹码(精灵)从某个固定地方飞到某片区域2019-09-06 12:39:29

    游戏中,筹码下注的特效是经常用到的。效果是从某个指定的点,飞到某片指定的区域中,有时候还是多个筹码的移动。 主要是用到移动MoveTo和随机rand()。 下面上代码: //筹码飞向某区域 void LoginScene::chipFly(int num) { //目标区域 Sprite* spDesc = static_cast<Sprite *>(th

  • loj 5192019-09-03 20:03:55

       这个题目我是建立一个操作树,根据时间的关系。 合并的过程还是用并查集来实现(按秩合并),然后关于询问,我是这么处理的,对于每个联通块,我建立一个权值分块,即cnt数组  由于内存限制,所以我权值的块的大小是1200,块数是最多90,每次递归的时候,就增加cnt,递归回来的时候,就减去cnt,这样就在

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

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

ICode9版权所有