HDU
文章平均质量分 65
Lanifer
这个作者很懒,什么都没留下…
展开
-
HDU 4712 Hamming Distance
题目概述:两个二进制数(十六进制表示)的异或值的“1”的个数成为Hamming distance,求任意两个二进制数的的Hamming distance 的最小值。分析:题目数据太弱了,用了很无节操的方法,居然过了。。。答案只是0...20中的一个数,查找时当循环超过200000次时直接跳出循环,如果是随机数据,得到正确答案的概率是很高的。#include#include#原创 2013-09-09 00:30:55 · 1117 阅读 · 3 评论 -
DHU 2993 MAX Average Program
题目链接大意:求长度不少与K的连续子序列的最大平均值。分析:DP : dp[ i ] = max { (sum[ i ] - sum[ j ] ) / (i - j) | i - j >=k } 可以通过斜率优化降低复杂度。做出 sum [ x ] - x 的函数图 , 即求x距离>=k 的两点间的最大斜率。斜率最大是必然是i 与前面的点 j 相原创 2013-11-11 20:07:57 · 754 阅读 · 0 评论 -
HDU 4258 Covered Walkway(斜率优化DP)
题目链接和POJ 3709 K-Anonymous Sequence是完全类似的题目,只是状态方程变了而已。dp[ i ] = min { dp[ j ] + (A[ i ] - A[ j + 1])*(A[ i ] - A[ j+1 ] ) + C | j单调队列维护下凸曲线。Y[ i ] = dp[ i ] + A[ i+1 ] *A[ i+1 ] , X[ i原创 2013-11-12 01:04:43 · 996 阅读 · 0 评论 -
HDU 4770 Lights Against Dudely(枚举子集,简单模拟)
题目链接:由题中最多只有15个需要点亮的灯可知,暴力法可行。。。代码:#include #include #include #include using namespace std;const int maxn=205, maxr=20 ,INF=(int)1e9 ,EPS = 100;char mp[maxn][maxn];int N,M;int light[ma原创 2013-11-09 23:08:35 · 698 阅读 · 0 评论 -
HDU 4460 Friend Chains
题目链接换句话解释题意就是说求最短路的最大值(相邻两点的距离为1),数据范围是点数 1000 ,边数20000, 难道要求所有点之间的最短路再求最大值, O(n^3) 有点大。怎么办呢? 其实是可以优化的,从一个源点用BFS一圈一圈地向外扩展,最短路即圈数,复杂度是O(n),比dijkstra或SPFA都要好,其次,如果图不是联通的,那么答案肯定的INF,直接输出。 这样整体最坏情况是O原创 2013-11-01 19:53:42 · 668 阅读 · 0 评论 -
HDU 1536 S-Nim (SG定理)
题目:有n堆珠子,各堆的珠子数是确定的(不需相同),两人轮流从其中一堆中拿走一些珠子,最后没有珠子可拿的人输了。这题与Nim游戏不同的是每次拿走的珠子数只能是 给定集合中的数。分析:这就是考察SG定理的直接应用,每一堆都可看成一个子游戏,游戏和第SG值就是"各子游戏的SG值的Nim和“ (即异或值)代码:#include#include#include#i原创 2013-09-26 19:05:15 · 767 阅读 · 0 评论 -
HDU 1517 A Multiplication Game
题目: 基础博弈题Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the nu原创 2013-09-26 00:54:12 · 654 阅读 · 0 评论 -
HDU 1907 John
尼姆博弈今天开始学习博弈,这个理论果然精妙,胜负情况有二进制数异或值 是否为零决定。两个看似不相关。。尼姆游戏分两种:1. 最后拿者胜 (必胜态为: NIM和非零)2. 最后取者负 (“有充裕堆且NIM和非零” 或 “没充裕堆且NIM为零”)代码:#includeint main(){ int T,n; scanf("%d原创 2013-09-25 21:21:31 · 604 阅读 · 0 评论 -
HUD 1847 Good Luck in CET-4 EveryBody
题目:作为计算机学院的学生,Kiki和Cici打牌的时候可没忘记专业,她们打牌的规则是这样的:1、 总共n张牌;2、 双方轮流抓牌;3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;假设Kiki和Cici都是足够聪明(其实不用假设,哪有不聪明的学生~),并且每次都是Kiki先抓牌,请问谁能赢呢?原创 2013-09-26 12:52:49 · 712 阅读 · 0 评论 -
HUD 1846 Brave Game (基础博弈)
题目:各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:1、 本游戏是一个二人游戏;2、 有一堆石子一共有n个;3、 两人轮流进行;4、 每走一步可以取走1…m个石子;5、 最先取光石子的一方为胜;如果游戏的双方使用的都是最优策略,请输出哪个人能赢。分析:巴什博奕很容易理解,将n个石子按每(m+1)个一堆分成若干堆,不足m+1原创 2013-09-26 12:41:47 · 607 阅读 · 0 评论 -
HDU 2509 Be The Winner
简单尼姆博弈代码:#includeint main(){ int T,n; scanf("%d",&T); while(T--) { int nim=0,x,sum=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&原创 2013-09-25 21:26:25 · 585 阅读 · 0 评论 -
POJ 2599 A funny game
题目: 给定一棵有N个节点双向边的树,从某个节点出发,两人轮流不重复地转移到另一个节点,无路可走的人输。分析:树形博弈, N态的后继一定有P态,P态没有N后继态。 注意状态的转移。。。。。代码:#include#include#include#include#includeusing namespace std;const int maxn=1010;int原创 2013-09-29 19:23:06 · 678 阅读 · 0 评论 -
HDU 4725 The Shortest Path in Nya Graph
题目:自己没做出,看了大神的代码,学到了有用的东西。若果将所有相邻两层的点都加一条边,肯定会爆的,此题考验的是构图能力,可以在每一层添加两个虚拟节点,第i层的两个额外节点为:Ai和Bi可以构建下面这样的图:是不是直观看都简单多了。代码:#include#include#include#include#includeusi原创 2013-09-13 01:14:14 · 669 阅读 · 0 评论 -
HDU 4726 Kia's Calculation
题目大意: 给定两个数位相等的数,可以改变各数位的位置(但不能有前导零),计算和值,注意算和时没有进位,问能得到的最大和值(不能有前导零)分析:这题没有用到说明特殊知识,完全乱搞,但是需注意结果不能有前导零! 即下面这组数据:1100900答案是0 不是000代码:#include#include#include#include#includ原创 2013-09-11 20:14:27 · 782 阅读 · 0 评论 -
HDU 4727 The Number Off of FFF
这题错的莫名其面,参考别人代码写出AC代码,至于之前为什么错了,依然云里雾里。代码:#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;int a[100050];int原创 2013-09-11 21:20:08 · 620 阅读 · 0 评论 -
HDU 4722 Good Numbers
题目大意: 如果一个数的个数位和能被10整除,则称为Good Number,问区间[A,B]的Good Number 的个数。分析:数位dp,dp[i][j]表示有i位,数位和除10余j的数的个数。代码:#include#include#include#includeusing namespace std;typedef long long LL;LL dp[25][10]原创 2013-09-12 13:06:34 · 529 阅读 · 0 评论 -
HDU 4720 Naive and Silly Muggles
题意: 问三点的最小包络圆 是否包含第四个点?分析:模板题,但需要注意分锐角,钝角两种情况。代码:#include#include#includeusing namespace std;#define PI 3.141592653589793struct point{ double x; double y;};struct Line{原创 2013-09-11 20:26:14 · 871 阅读 · 0 评论 -
HDU 3507 Print Article(斜率优化DP)
题目链接基础的斜率优化DP参考代码:#include #include #include #include using namespace std;const int maxn= 500050;int A[maxn] , dp[maxn] ,sum[maxn], M;int myque[maxn],head,tail,N;#define Y(i) (dp[i]+su原创 2013-11-12 11:32:36 · 940 阅读 · 0 评论