首页 > TAG信息列表 > UVa
Period UVA - 1328
思路 注意重复字符串可以重叠!!!比如 \(aba\) 重复两次就可以是 \(ababa\) 。 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1000010; int test_case = 1; int n; string s; int ne[N]; int main () { while (cin >>UVA 515 King题解
来水写一篇差分约束系统的题解。 洛谷题目链接 POJ题目链接 差分约束相信大家都会,就是写出不等式,然后将题目转化为图上问题即可 这道题目的特殊之处就是用到一个超级源点,超级源点就是这个点与所有的边连一条边权为零的边,便于跑 SPFA (当然跑 bellman 也不拦着你)。 不等式 根据题目挑战编程-程序设计竞赛训练手册
挑战编程 uva100 3n+1 模拟 挑战编程 uva 10189 扫雷 模拟 uva 10196 将军 模拟uva 272 Java
老铁们,做程序员能不懂算法么,面试的时候绕不过去的,所以最近想刷刷算法,买了一本紫书,也就是 刘汝佳 的 算法竞赛入门经典,刷一刷 但是这本书上的代码都是 C++ 写的,我还是用 Java 顺手 这是这本书的第一道题 import java.util.Scanner; public class Main { public staticUVA-540 团体队列 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 #include<iostream> #include<map> #include<vector> #include<queue> #include<string> using namespace std; int main() { int t, n = 0, a, b, i, j; string s; whiUVa 816 Abbott's Revenge
BFS。同时记录每个进队节点的父亲节点,以便于输出路径。 细节很多,较为复杂,请见下面的代码(含有详细注释)。 #include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include<cstring> #include<vector> using namespace std; struct Node { int r,c,dir;UVa 1354 Mobile Computing
乍一看似乎无从下手,但仔细一想就发现其实就是枚举二叉树的形态,然后计算贡献。 用二进制表示二叉树,预处理出所有可能的子树(子集)的贡献。在搜索时以左子树作为变量,不断除去左子树二进制表示中的 1。分别递归搜索左、右子树后,遍历左、右子树可能的贡献(存在一个vector里),从而算出宽度。UVa 129 Krypton Factor
DFS。主要问题在于如何判断当前枚举到的串是否含有相同且相邻的两个子串。 我们如果每枚举到一个位置都判断的话,那么注意到假设当前枚举到答案的位置 \(cur\),那么在 \(cur\) 之前的一定都判断过了,因此只需要考虑以 \(cur\) 为结尾的后缀就好了。 #include<iostream> #include<cstdUVA_1599 Ideal Path
题意 给一个n个点m条边(2≤n≤100000,1≤m≤200000)的无向图,每条边上都涂有一种颜色。求从结点1到结点n的一条路径,使得经过的边数尽量少,在此前提下,经过边的颜色序列的字典序最小。一对结点间可能有多条边,一条边可能连接两个相同结点。输入保证结点1可以达到结点n。颜色为1~109的整数。【UVA】11526 - H(n) 【整除分块】【TB】
11526 - H(n) 题意 输入一个整数,求公式的值。 long long H(int n){ long long res = 0; for(int i = 1; i <= n; i = i+1 ){ res = (res + n/i); } return res; } Sample Input 2 5 10 Sample Output 10 27 题解 整除分块模板,打表可以发现值是一个块状489 Hangman Judge (UVA)
目录 AC source code: Vocabulary: "turned over"is equal to elimination. AC source code: #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; char s[105]; char b[105]; int main防紫外线衣服,要求工业UV灯紫外线防护用,紫外线防护服UV涂层,深圳沃客密科技
防紫外线衣服,要求工业UV灯紫外线防护用,紫外线防护服UV涂层,深圳沃客密科技 深圳沃客密科技 WKM 品牌紫外线防护出口欧美、东南亚等国家 .防护效果达到超标数值,完全保障客户身体健康。 工业UV紫外线主要是UVA波长的范围:UVA波段,波长320~420nm,又称为长波黑斑效应紫外线 。紫书uva 814传输代理的交互
# include<iostream> # include<map> # include<set> # include<string> # include<vector> using namespace std; void parse_add(const string& s, string& user, string& mta)//对数据进行处理的函数 { int k = s.find('@')UVA 10129
UVA 10129 欧拉回路 UVA 10129 欧拉回路代码 UVA 10129 欧拉回路 代码 `. /* * @Author: Axiuxiu * @Date: 2021-11-03 15:24:40 * @LastEditors: Axiuxiu * @LastEditTime: 2021-11-03 16:20:00 * @Description: 单词问题 */ #include <stdio.h> #include <striUVA - 210:Concurrency Simulator
题目链接:https://vjudge.net/problem/UVA-210 题目分析 就是一道模拟题,但是细节有点多。 写代码两个小时,调试代码用了两天。。。很长时间不刷题了,这道虽然算法简单但是细节满满的题目对我来说是一个很好的热身。 尽量不要去使用匿名名字空间,发现对调试过程不怎么友好(陈硕大大关于UVA - 1585的一系列问题
原题直通车 个人思路: 建立两个数组,分别把字符和转换后的数字放入不同数组内, 然后累加就完事了! ===================================================================== 做完后,发现好多大佬们用二维数组写的, 看了之后, 很懵....... 有位大佬的思路和我的差不多, 就是有UVa 1235 Frequent values
题目链接 大致意思就是给定一个非降序的序列,查询某个区间中出现最多的数字的出现次数。 分析: 既然是非降序的序列,那么相同的数字会出现在一起,所以直接记录相同的一段的起始和结束位置,比如一个序列:-1,-1,1,1,1,2,2,2可以用[1,2] [3,5] [6,8] 来记录,表示这三个区间的数字是一样的,区间UVa 12232 Exclusive-OR (带权并查集)
题目链接:https://www.luogu.com.cn/problem/UVA12232 对于条件 \(p \oplus q = v\),将 \(p\) 所在并查集和 \(q\) 所在并查集合并,权值为 \(d[p] \oplus d[q]\oplus v\) 即可 对于条件 \(p = v\),建立一棵虚拟节点,值为 \(0\),按上面合并即可,注意要以虚拟节点为根 查询需要保证每个并查[ Uva 101 详解 ] the block problem 木块问题
题目 输入 n 编号 0 ~ n-1 的木块,分别摆放在顺序排列编号为 0 ~ n-1 的位置。,要求模拟以下 4 种操作(下面的 a 和 b 都是木块编号) move a onto b:把 a 和 b 上方的木块全部归位,然后把 a 摞在 b 上面 move a over b:把 a 上方的木块全部归位,然后把 a 放在 b 所在木块堆的顶部 pile a后缀数组简介
前置知识 计数排序 基数排序 字符串基础知识 后缀数组模板 什么是后缀数组 后缀数组的核心是两个数组:\(sa,rk\)。 将字符串 \(s\) 的所有后缀从小到大排序,\(sa[i]\) 表示排名第 \(i\) 的后缀的起始字符在原字符串中的下标(从 \(1\) 开始编号),\(rk[i]\) 表示起始位置为 \(i\) 的后UVa 1640 The Counting Problem (数位dp)
题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=1663 记录一下某数字出现的次数,每个数字都单独算一遍即可 #include<cstdio> #include<cstring> #include<vector> using namespace std; typedef long long ll; const int maxn = 30; int l, r; ll dp[maxn][maxn], ans[maxUVA - 11624 Fire!(多源bfs+双bfs)
题目链接: https://vjudge.ppsucxtt.cn/problem/UVA-11624 大致题意: 迷宫里一个或多个位置有火,火没一秒蔓延到上下左右四个位置,Jor一秒只能上下左右移动一格,求Jor逃出在不遇上或逃出迷宫的最快时间。 思路: Jor移动的方向用很多中变化,而火只会随着时间向四个方向蔓延,所UVA 12716 XOR 找规律题
题目传送门 题意:给定整数 n n n ,求满足 1 ≤ b ≤UVA 439 Knight Moves 解题报告
广度优先搜索(BFS) 广度优先遍历也叫广度优先搜索,广度优先搜索从某个顶点出发,访问顶点,然后访问该结点的所有未被方位的邻接点,直到结点不存在未被访问的邻接点。 其算法步骤一般为:1、将起点入队;2、分析队首元素;3、将队首结点可拓展的点入队。如果队首UVa 1630 - Folding (区间dp)
题目链接:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4505 没有看出这是一道区间 \(dp\) 可以将串 \(S\) 分成 \(AB\) 两部分,一种方案是对 \(AB\) 直接拼接,另一种方案是将 \(B\) 折叠进入 \(A\),按照这两种方案转移即可,记录一下