首页 > TAG信息列表 > HihoCoder
HihoCoder - 1559 合并子目录(字典树)
题目链接 题目大意 略 解题思路 主要是说下坑点,比如这组数据: 3 /game/moba/dota2/a /game/moba/dota2/b /game/moba/dota2/c 结果应该是 /game-moba-dota2/a /game-moba-dota2/b /game-moba-dota2/c 如果目录下只有单一目录但H - 遥远的糖果 HihoCoder - 1478
给定一个N x M的01矩阵,其中1表示人,0表示糖。对于每一个位置,求出每个位置离糖的最短距离是多少。 矩阵中每个位置与它上下左右相邻的格子距离为1。 Input 第一行包含两个整数,N和M。 以下N行每行M个0或者1。 数据保证至少有1块糖。 1 ⇐ N, M ⇐ 800 Output 输出N行,每行M个空格分隔Randomized Fibonacci (HihoCoder-1164)期望DP
Consider the following way to generate a new "randomized" fibonacci sequence. a0 = 1, ai = aj + ak, i > 0, j and k are picked randomly from all integers in the interval [0, i-1] (j and k are independent). Now given n, among all the posibiliti【简要题解】Hihocoder 重复旋律1-8简要题解
【简要题解】Hihocoder 重复旋律1-8简要题解 编号 名称标签 难度 1403 后缀数组一·重复旋律 Lv.4 1407 后缀数组二·重复旋律2 Lv.4 1415 后缀数组三·重复旋律3 Lv.4 1419 后缀数组四·重复旋律4 Lv.4 1445 后缀自动机二·重复旋律5 Lv.4 1449 后缀自动机三·hihoCoder #1381 : Little Y's Tree
http://hihocoder.com/problemset/problem/1381 一个结论:集合A的直径为a--b,集合B的直径为c--d,那么集合A∪B的直径必是以下6种之一: a--b c--d a--c a--d b--c b--d 断掉一条边,相当于从树的dfs序上取出一段区间 用线段树维护dfs序上任意一段区间的直径 如果[1,10]断hihoCoder#1879 : Rikka with Triangles (计算几何)
n<=2000,肯定没有办法把所有三角形找出来全判一遍 对于三角形的三个角,分别计算贡献,锐角的贡献是1倍面积,钝角的贡献是-2倍面积,这样算出角的贡献之后除以3就可以了 每次选择一个点为中心点,极角排序,维护一个锐角和钝角的坐标和,边扫边算贡献 #include <bits/stdc++.h>#define ll long分数调查 【HihoCoder 1515】【带权并查集】
题目链接 题目大意 有n个学生,已知m个信息,每个信息说明了x比y高多少分。有q个询问,每个询问输出x比y高多少分,不能判断的输出-1 解题思路 用带权并查集 x比y高多少分,就是x和y这个关系上的权值。 当x和y没有公共祖先节点的时候就输出-1。 #include<stdio.h> #include<string.h>【HihoCoder #1529】— 不上升序列(dp+斜率)
传送门 可以列出dpdpdp f[i][j]f[i][j]f[i][j]表示前iii个点,最小的为jjj的最小花费 那么显然有f[i][j]=(mink>=jf[i−1][k])+∣a[i]−j∣f[i][j]=(\min_{k>=j}f[i-1][k])+|a[i]-j|f[i][j]=(mink>=jf[i−1][k])+∣a[i]−j∣ 可以归纳法证明f[i]f[i]f[i]是一个分段一次函HihoCoder - 1415 后缀数组
把a,b合并起来跑一遍就行 记录一下板子 #include<bits/stdc++.h>#define ll long long #define ull unsigned long long#define fi first#define se second#define mp make_pair//#define endl '\n'#define pii pair<ll,ll>#define all(x) x.begin(),x.end()#define Ihihocoder 1403 后缀数组一·重复旋律 (后缀数组 + 二分)
时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴。我们知道一个音乐旋律被表示为长度为 N 的数构成的数列。 小Hi在练习过很多曲子以后发现很多作品自身包含一样的旋律。旋律是一段连续的数列,相似的旋律在原数列可重叠。比如在1 2 3[hihocoder-1974] 智能分包 状态压缩dp
题目链接:https://hihocoder.com/problemset/problem/1974 题目: 小Hi在一家电商公司工作,开发订单的智能分包功能。 用户的一个订单可能包含N种不同的商品,其中第i种购买了Ai件。电商公司一共有M个仓库,用户订单中的第i种商品在第k个仓库中的库存是cnt[k][i]件。 有的时候单一仓练习赛40
Begin: 2019-03-25 18:35 PDD:250rlb A HihoCoder-1728 卡片游戏 (45) 卡片游戏 思路 用一个set来存储还没被集合包括的数,然后O(N)跑一遍循环, 模拟翻每张牌,然后更新答案ans=min(ans,*s.begin()) B (55) HihoCoder-1729 宝藏坐标 宝藏坐标 思路 先枚举逗号放的位置,在枚举左半部分【HihoCoder - 1502】最大子矩阵(二维前缀和,尺取)
题干: 给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该子矩阵中所有元素的和不超过K。 Input 第一行包含三个整数N、M和K。 以下N行每行包含M个整数,表示A。 对于40%的数据,1 <= N, M <= 10 对于100%的数据,1 <= N, M <= 250 1 <= K <= 21474hihoCoder 第253周 hiho一下 矩形分割
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi有一块由NxM个单位正方形组成的矩形。现在小Ho在某些单位正方形上画了一道分割线,这条分割线或者是单位正方形的主对角线(用'\'表示),或者是副对角线(用'/'表示)。 现在小Hi想知道这些分割线把NxM的矩形分割成了多少hihocoder#1333 : 平衡树·Splay2 (区间操作)
题面: #1333 : 平衡树·Splay2 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:好麻烦啊~~~~~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊!前几天老师让我帮忙管理一下团队的人员,但是感觉好难啊。 小Hi:说来听听? 小Ho:事情是这样的。我们有一个运动同好会,每天都有人加入或【hihocoder】字符消除
package Lv1;import java.util.*;public class 字符消除 { // f(s):返回消除s连续相同字符的个数 private static int f(String s) { int ans = 0; StringBuffer sb = new StringBuffer(s); while (!different(sb.toString())) {//这个HihoCoder - 1607 H星人社交网络
题目: Handbook是H星人的一家社交网络。Handbook中共有N名用户,其中第i名用户的年龄是Ai。 根据H星人的文化传统,用户i不会给用户j发送好友请求当且仅当: Aj < 1/8 * Ai + 8 或者 Aj > 8 * Ai + 8 或者 Ai < 88888 且 Aj > 88888 其他情况用户i都会给用户j发送好友请求。 你能求出HIHOcoder 1466 后缀自动机六·重复旋律9
思路 后缀数组+博弈论的好题,首先对两个串都建出SAM,然后题目的要求实际上就是在SAM的trans上转移即可 DAG的博弈是经典问题,然后dfs求出SG函数,两个游戏的组合就是把SG函数异或起来,异或是0就是先手必败,不是0就是先手必胜 然后要求先手必胜,所以就是求异或不为0 接下来递推的求出第k大的hihocoder-Week243-hiho字符串
hihocoder-Week243-hiho字符串 题目1 : hiho字符串 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 如果一个字符串恰好包含2个'h'、1个'i'和1个'o',我们就称这个字符串是hiho字符串。 例如"oihateher"、"hugeinputhugeoutput"都是hiho字符串。 现在给定一个只HIHOcoder 1441 后缀自动机一·基本概念
思路 SAM的概念题 暴力模拟就好了 代码 #include <cstdio> #include <cstring> #include <algorithm> #include <set> using namespace std; set<int> St[2511]; const int base = 131; int setcnt=0,minlens[2511],minlent[2511],maxlens[2511],maxlent[2511]