UVa 1531 - Problem Bee】的更多相关文章

题目:如图所看到的的蜂巢型的图中.蜜蜂想从A点飞到B点,假设A与B不在同一个正六边形中, 则它先飞到A的中心.每次飞到相邻格子的中心,最后飞到B的中心,再飞到B点: 假设在一个格子中.直接飞过去就可以(观察第二组数据). 分析:计算几何. 设格子边长为a. 首先观察,全部格子的中心为(3xa/2,sqrt(3)ya/2),当中x.y为整数且奇偶性同样: 因此.依据给定点的坐标,能够求出A,B所在的格子的行列编号(处理奇偶性不同情况). (因为,是取整计算,所以要要推断周围六个格子.是不是比自己更…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=975 最小生成树. #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 1000 using namespace std;…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=973 #include <cstdio> #include <cstring> #include <algorithm> #define ll long long using namespace std; ]; int n; ll dp[]; int mai…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=970 通过对每一个字符串,每一个位置进行枚举三个操作,然后二分查找操作后的字符串是否存在,dp记录. #include <cstdio> #include <cstring> #include <algorithm> #define N 25000 usin…
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88171#problem/F 代码: #include <cstdio> #include <cstring> #include <algorithm> #define maxn 20000 using namespace std; int t; int n,k; int a[maxn]; bool flag; ]; int main() { scanf…
题意:能否在一个整数序列的每相邻的两项之间添加一个加减号,使得最终结果能被一个给定整数K<=100整除. dp[i][j]表示第i个数取余k为j的布尔值. #include <cstdio> #include <cstring> #include <algorithm> #define maxn 20000 using namespace std; int t; int n,k; int a[maxn]; bool flag; ]; int main() { sc…
紫皮书题: 题意:让你设计照明系统,给你n种灯泡,每种灯泡有所需电压,电源,每个灯泡的费用,以及每个灯泡所需的数量.每种灯泡所需的电源都是不同的,其中电压大的灯泡可以替换电压小的灯泡,要求求出最小费用 题解:每种电压灯泡要么全换,要么全不换,因为只换部分还要加额外的电源费用,并且换了部分之后费用更少,不如全换 先把灯泡按照电压从小到大排序,这样进行dp时,后面的电压大的如果比电压小的更优的话就可以替换了 设dp[j]为前j个最优了,则dp[i] = min{dp[i],dp[j] + (s[i]…
, '\n'); #include<cstdio> #include<iostream> #include<string> #include<algorithm> #include<iterator> #include<cstring> //uva 10033 Problem G: Interpreter #define ONLINE_JUDGE using namespace std; ]; ]; int steps; ; int…
题目传送门 快速的通道I 快速的通道II 题目大意 给定一堆短串,和一个文本串,问哪些短串在文本串中出现的次数最多. 我觉得刘汝佳的做法,时间复杂度有问题.只是似乎这道题短串串长太短不好卡.比如给出的串是一坨$a$.暴力跳$last$会比较gg. 考虑如何计算一个短串在长串中的出现次数. 当短串在长串的某个位置出现的时候,这意味着它的结束位置在fail树上的祖先中某个状态是短串的终止状态. 我们会在长串经过的每个状态都去做这样一个操作来统计每个短串出现的次数. 这个可以看成在fail树上的以根为…
题目传送门 高速路出口I 高速路出口II 题目大意 给定若干种短串,和文本串$S$,问有多少种方式可以将短串拼成长串. 显然,你需要一个动态规划. 用$f[i]$表示拼出串$S$前$i$个字符的方案数. 转移是显然的.枚举上一个拼接的串的长度,然后判断它是否存在,如果存在就把$f[i]$加上$f[i - l]$. 这个判断存在可以用Hash.当然可以对每个短串的反串建立Trie树,然后在Trie树上查一查$i$往前会走到长度为哪些的终止状态. 由于我懒,不想写Trie树,直接用平板电视的hash…