ICode9

精准搜索请尝试: 精确搜索
  • 最短路径问题之Dijkstra算法2021-03-07 19:01:44

    Dijkstra算法 吐槽 今天参加了leetcode周赛,第三题一眼就看出需要使用到一点到多点的最短距离,第一反应就是Dijkstra算法,奈何平时基本没写过几遍Dijkstra算法,模本没整理好,导致手忙脚乱,四处考古,最后压时提交,还是WA…,很烦,所以花时间把Dijkstra算法,完整的写一遍。 后续可能还会把F

  • CF1433G Solution2021-03-06 21:01:26

    题目链接 题解 下文将点\(x,y\)间的最短路长度称为\(<x,y>\) 若将边\(i\)的权值赋为\(0\),对于每组\(a_j,b_j\)有两种情况:最短路经过/不经过\(i\)。经过的情况花费\(=<a_j,u_i>+<b_j,v_i>\)或\(<a_j,v_i>+<b_j,u_i>\),不经过的情况预处理出未更改边权的\(<a_j,b_j>\)即可。 AC代码 #

  • Catch That Cow (BFS)2021-03-04 21:04:03

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 33021    Accepted Submission(s): 8956 Problem Description Farmer John has been informed of the location of a fugitive cow and wants

  • 1074 Reversing Linked List (25 分)2021-03-03 16:36:26

    水~。 注意点 要考虑可能存在无效结点的情况,即不是由题目给出的头结点引出的单链表上的结点,这些结点是要去掉的,最终不予输出。 反转链表只改变结点的next地址,而不会改变本身的地址,因此address和data可以视为绑定的。 const int N=1e5+10; struct Node { int addr,data,nxt;

  • [CF1468A] LaIS - dp,树状数组2021-03-01 12:34:38

    [CF1468A] LaIS - dp,树状数组 Description 给出一个长度为 \(n\) 的序列 \(a_1,a_2,...,a_n\) ,请找出一个子序列 \(b_1,b_2,...,b_k\) ,使其满足 \(\min(b_1,b_2)\le \min(b_2,b_3)\le ...\le \min(b_{k-1},b_k)\) ,求出 \(k\) 的最大值。 Solution LaIS 中由一个子序列满足是 IS

  • HDU44052021-02-21 14:35:56

    Hzz非常喜欢飞机象棋。象棋地图包含N+1个从0到N的网格。Hzz从网格0开始。他每走一步就掷一个骰子(一个骰子有六个面,面朝上的概率相等,面上的数字是1、2、3、4、5、6)。当Hzz在第一格且骰子数为x时,他将移动到第一格+x。当i+x等于或大于N时,Hzz结束游戏。   国际象棋地图上还有M条

  • Dinic算法模板2021-02-18 20:01:36

    没什么好说的,建议直接背过。 “Dinic的复杂度就是个笑话,跟放P一样” 看似 \(O(n^2m)\) 实则艹过 \(n=10^5,m=10^6\) #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e4+10,M=2e5+10,INF=1e8; int n,m,s,t; int head[N],ver[M],nxt[M],cc[M]

  • 【YbtOJ#482】爬上山顶2021-02-17 16:33:57

    题目 题目链接:https://www.ybtoj.com.cn/contest/116/problem/2 \(n\leq 5\times 10^5,x,y\leq 10^6\)。 思路 考虑求出点 \(i\) 左右分别能看到的最高点,然后在两者之间取最大值。 以左边为例,可以发现肯能造成贡献的一定位于上凸壳上,然后点 \(i\) 被贡献到的其实就是我们把点 \(i

  • 题解 P5072 【[Ynoi2015] 盼君勿忘】2021-02-15 10:05:25

    在太阳西斜的这个世界里,置身天上之森。等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去、逐渐消逝的未来。我回来了,纵使日薄西山,即便看不到未来,此时此刻的光辉,盼君勿忘。————世界上最幸福的女孩 珂朵莉最最最最最最最珂爱了! 闲话少说,切入正题

  • 2018-2019 ACM-ICPC, Asia Nakhon Pathom Regional Contest 部分题解2021-02-11 15:33:11

    比赛链接 Problem A Flying Squirrel 留坑。   Problem B Grid Coloring 留坑。   Problem C Evolution Game 按照$horns$的大小升序排列。 $j<i$且两者的$eyes$数量不超过$w$。$dp[i]=max(dp[i],dp[j]+1)$。 1 #include<bits/stdc++.h> 2 using namespace std ; 3 int mai

  • CodeForces 371D. Vessels 题解2021-02-09 20:34:30

    发篇题解证明我的博客园还活着...... 前言 这道题的常规写法大概有:链表,线段树。 我做的时候什么也没想,就直接线段树干就完了.....因为我没有脑子...... 但是实际上可以用链表做到复杂度 O(\(n\)) 级别。 具体做法 1.线段树 线段树做法需要支持的操作为: 区间覆盖,单点修改,区间查询

  • [CF1479B2/CF1480D2] Painting the Array II2021-02-08 08:32:46

    [CF1479B2/CF1480D2] Painting the Array II Description 将一个序列拆成两个子序列,然后每个子序列中相邻相同的元素只保留一个,最小化剩下元素的个数。 Solution 贪心,决定每个元素 \(a[i]\) 放在哪里,需要考虑 \(a[i]\),下个和 \(a[i]\) 相等的数的位置,以及当前已有子序列的末尾 每

  • 【牛客网】数一数2021-02-02 15:01:24

    【牛客网】数一数 题目链接 题目大意 定义 \(\operatorname{f}(s,t)\) 为 \(t\) 的子串中,与 \(s\) 相等的串的个数。 给出 \(n\) 个字符串,第 \(i\) 个字符串为 \(s_i\),对 \(\forall1\leq i\leq n\),求出 \(\prod_{j=1}^n\operatorname{f}(s_i,s_j)\)。 答案对 \(998244353\) 取模

  • 2月1日 图论2021-02-01 21:29:43

    终于来到了传说中的图论,第一天就被虐的死去活来,究其原因是因为曾经的一些东西如dp,bfs理解的不是很透,代码写不出来,尤其是递推这块非常不熟练,图论的有些东西就很不好,后续会继续在csdn上总结一下dp和bfs 今日主要内容:1、图的基本定义等(这个在网上都有,不多说了) 2、存图 3、图的

  • CF625E Frog Fights2021-01-22 18:35:46

    有\(n\)只青蛙在一个长度为\(m\)的环上打架;每只青蛙有一个初始位置\(p_i\),和一个跳跃数值\(a_i\)。从\(1\)号青蛙开始按序号循环行动,每次若第\(i\)只青蛙行动,则它会向前跳 \(a_i\)个格子,撞飞它遇见的所有青蛙,包括终点格子上的,之后它的\(a_i\)减少等同于撞飞的青蛙只数,若\(a_i<0\),

  • hdu4841 圆桌问题2021-01-21 13:03:25

    这本应是一道很简单的模拟题,时间复杂度,然而数据范围,n和m最大为32767,用模拟理应超时。    一通百度过后,发现很多人用模拟,然后我也模拟了一下,A了。 1 #include <cstdio> 2 #include <vector> 3 #include <numeric> 4 #include <string> 5 using namespace std; 6 7 int

  • BZOJ - 3786 星系探索2021-01-06 21:02:02

    \(\text{Description}\) 传送门 \(\text{Solution}\) 据说是伪 \(\text{ETT}\)。 但既然不会那玩意儿,所以把它称作——欧拉序 \(+\) 平衡树。 具体怎么做呢?我们设点 \(u\) 的进入,出去的时间戳为 \(st_u,ed_u\)。然后在欧拉序序列上建一棵平衡树,给 \(st_u\) 的权值赋为 \(val_u\),给

  • acm-kmp学习笔记2021-01-01 12:02:37

    引言 kmp相关算法主要用于解决字符串的匹配问题,本文除了探讨最基础的kmp算法,还会介绍扩展kmp算法,注意本文主要写给作者看,很多基础的东西都没有讲,写得也相对比较随意 kmp相关算法 引言一、kmp算法1、原理2、代码3、习题 二、扩展kmp算法1、原理2、代码3、习题 一、kmp

  • 双链表(模板)2020-12-18 16:33:04

    code: #include<bits/stdc++.h>//xfl using namespace std; const int N = 1e5+5; struct Biao{int v,nxt,pre;}b[N]; int l,r,cnt=1,n,k,x; void add(int k,int x){b[++cnt].v=x;b[cnt].nxt=b[k].nxt;b[cnt].pre=k;b[b[k].nxt].pre=cnt;b[k].nxt=cnt;} void deleted(i

  • 链式邻接表与数组模拟邻接表 数组模拟哈希表与链式哈希表2020-12-16 12:33:46

    #include<bits/stdc++.h> using namespace std; const int size=1e4; struct edge { int to; edge *nxt; }; struct ver { int head; edge *firsteg; }; int vis[10000]; class alg { private: ver hd[size]; //邻接表中的数组只有头结点数组,

  • 双栈排序2020-12-14 15:04:22

    感觉有一些地方没有梳理通,需要重新考虑一遍。 一开始的建图,是没有问题的。 对于任意三元组 \((x,y,z)\),若满足 \(x<y<z\) 且 \(a_x<a_y\) 且 \(a_x>a_z\),那么 \(x,y\) 之间便有一条之间相连的边。 关键在于我后面的使用非常的 Naive,才导致 WA 掉。 比如对于: 10 10 2 8 1 7 9 3 4 5

  • 【字符串】后缀自动机2020-12-10 17:04:40

    struct SAM { static const int MAXN = 1e6 + 10; struct State { int nxt[26]; int len; int lnk; } st[2 * MAXN]; int siz; int lst; void Init() { siz = 0; lst = 0; ms(st[0].nxt);

  • poj 3987 Computer Virus on Planet Pandora —— ac自动机复习2020-12-07 10:02:45

    poj 3987 Computer Virus on Planet Pandora ac自动机复习 题意如下 给出多个模式串,最后给出一个文本串,求有多少个模式串被文本串包含或者被反序的文本串包含 几乎是ac自动机模板,正反跑两次就行了。但是当时板子怎么写忘记了,队里也没带资料,于是没调出来。说明还是基本功不够

  • [ICPC2019 WF]Hobson's Trains2020-12-06 21:01:26

    传送 这道题虽然思维难度不高,但是我却收获颇多。 这个图的模型就是好多棵基环内向树,然后求对于每一个点\(u\),在\(k\)步之内能走到\(u\)的点的数量(包括点\(u\)自己)。 首先自然是分成两部分:树上的点和环上的点。 对于树上的每一个点,无非是把他的的\(k\)级之内的祖先都加1,这个用树

  • 习题 7-8 数字谜(Digit Puzzle, ACM/ICPC Xi‘an 2006, UVa12107)2020-12-05 13:29:42

    原题链接:https://vjudge.net/problem/UVA-12107 分类:迭代剪枝 备注:IDA*,细节 枚举两个乘数,匹配乘积,还是很快的,就100ms。 #include<bits/stdc++.h> using namespace std; const char s[]="*0123456789"; char str[3][10]; int len[3],kase; bool vis[100][100]; int cal(){

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

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

ICode9版权所有