08 2017 档案
摘要:hdu 3652 题意:求1到n中包含'13'('13'不一定连续)且能被13整除的数的个数。 这是我第一道比较了能看懂的数位dp。定义状态dp[pos][res][sta]表示处理到第pos位,模的余数为0,sta取0,1,2,0表示无'13',1表示有1无3,2表示有'13'。 特别注意就是16
阅读全文
摘要:AtCoder Grand Contest 019 B - Reverse and Compare 题意:给定字符串,可以选定任意i、j且i<=j(当然i==j时没啥卵用),然后翻转i到j的字符串,问能组成多少种不同的字符串。 tourist出的题。。感觉好棒,虽然简单,但我就是不知道怎么弄,感觉思
阅读全文
摘要:hdu 1503 不知道最后怎么输出,因为公共部分只输出一次。有人说回溯输出,感觉好巧妙!其实就是下图,输出的就是那条灰色的路径,但是初始时边界一定要初始化一下,因为最第一列只能向上走,第一行只能向左走。我用1表示向上走,2向左上方走,3向左走。 刚开始输入字符串时有两种方法,直接输入;或从地址后一
阅读全文
摘要:B. Once Again... time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an array o
阅读全文
摘要:在弄dp时感觉一道题需非要弄清二分查找不可。以前学二分一直就很迷惑,网上资料也各种各样。的确二分是个很容易写错的算法,今天只好不算太耐心的再看一遍二分。总感觉时间不够用。。 二分查找有许多细节,这次先抓主要矛盾。关于什么(left+rigth)/2溢出的问题啊先不考虑了。对我来说二分迷惑的地方还是在
阅读全文
摘要:感觉这道题浪费了我半个小时的生命。。。。。。哇靠!原来输出里面当len=1时是road否则是roads!!! 其实做过hdu 1950就会发现这俩其实一样,就是求最长上升子序列。我用结构体记录要连线的两个city,对一个数组排序再求相应的另一个数组lis。 开始WA还以为我写错了, 造了数据测一下没
阅读全文
摘要:添加头文件<time.h>,<stdlib.h>。 数据生成器写:freopen("X:\\x.txt","w",stdout); 再写:srand(time(NULL))用时间作为产生随机生成数的种子。 后面比如要想产生n个数,可以先int n=多少,再printf("%d\n",n),再for(
阅读全文
摘要:poj 2533 简单的动归。用O(n^2)的算法也能过。但是有个细节!刚开始ans初始化为0时是错的!!!要初始化为1。因为只有1个数的时候,下面的循环是不会执行的。。。。。或者特判。。
阅读全文
摘要:首先考虑下面的问题:Code[VS] 3657 我们用以下规则定义一个合法的括号序列: (1)空序列是合法的 (2)假如S是一个合法的序列,则 (S) 和[S]都是合法的 (3)假如A 和 B 都是合法的,那么AB和BA也是合法的 例如以下是合法的括号序列: (), [], (()), ([]),
阅读全文
摘要:uva 10502 题意:给定01矩阵,求有多少个由1构成的矩阵。1本事也算一个矩阵。 到最后还是想不出来。。。。。 每次枚举两行,从第i行到第j行,k枚举矩阵的宽(column)。这样就相当于每次看看每列i到j行之间是否全是1,是就累加tot,不是就tot置零。比如现在i=1,j=3,前k=3列为
阅读全文
摘要:hdu 1024 题意:给定序列,求找出m个子序列的和使它们最大,子序列无交叉。 题解:又是最大子序列和增强版。但是这回让找m个,我还是没有思路。网上看到的思路无一例外都是: dp[i][j]表示前j个数分成i个子序列能获得的最大值。它有两大部分转移过来,一个是j是第i个序列的首元素,则dp[i][
阅读全文
摘要:HDU1003 HDU1231 题意自明。可能是真的进步了点,记得刚开始研究这个问题时还想了好长时间,hdu 1231还手推了很长时间,今天重新写干净利落就AC了。 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #incl
阅读全文
摘要:HDU 1081 题意:给定二维矩阵,求数组的子矩阵的元素和最大是多少。 题解:这个相当于求最大连续子序列和的加强版,把一维变成了二维。 先看看一维怎么办的: 这种做法太棒了!短短几行,就能解决最大子序列和这个问题。其实这几行代码值得深思。而且这是个在线算法,输入数据及时能给出结果,感觉不能归于动归
阅读全文
摘要:UVa 10074 题意:求01矩阵的最大子0矩阵。 http://www.csie.ntnu.edu.tw/~u91029/MaximumSubarray.html#2 这里说的很清楚。先求Largest Empty Interval,枚举每个点为矩形的右下角。 按照下一个更高效的算法写,不知道为
阅读全文
摘要:Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the beach. The gym where they go is a matrix a with n
阅读全文
摘要:Problem 2234 牧场物语 Problem Description 小茗同学正在玩牧场物语。该游戏的地图可看成一个边长为n的正方形。 小茗同学突然心血来潮要去砍树,然而,斧头在小茗的右下方。 小茗是个讲究效率的人,所以他会以最短路程走到右下角,然后再返回到左上角。并且在路上都会捡到/踩到一些
阅读全文
摘要:UVa 4787 WF题果然不一样,本来想暴力搜索,数据太大了,数组都开不了。看题解也不太懂,记录一下书上的题解,以后再看: 此题是给出N*M的格子,有些地方是墙,不可走。求所有不能只通过向上或者向右走而走到右上角的格子。 通过观察数据,可以发现房间的规模很大(1<=m,n<=1e6),而墙数很小(
阅读全文
摘要:UVa 926 题意:给定N*N的街道图和起始点,有些街道不能走,问从起点到终点有多少种走法。 很基础的dp、递推,但是有两个地方需要注意,在标记当前点某个方向不能走时,也要同时标记对应方向上的对应点。另一点就是要开long long存。要是不考虑障碍的话,按组合数算从(1,1)走到(n,n)需要2
阅读全文
摘要:UVa 825 题意:给定一个网格图(街道图),其中有一些交叉路口点不能走。问从西北角走到东南角最短走法有多少种。(好像没看到给数据范围。、。) 简单的递推吧,当然也就是最简单的动归了。显然最短路长度就是row+col。求种数就从开始往后推。 由于第一行第一列也有可能是障碍点,所以初始化时要注意这一
阅读全文
摘要:UVa 10599 题意: 给出r*c的网格,其中有些格子里面有垃圾,机器人从左上角移动到右下角,只能向右或向下移动。问机器人能清扫最多多少个含有垃圾的格子,有多少中方案,输出其中一种方案的格子编号。格子编号是从 左上角第一个开始,一行一行的按自然数顺序编。起始行列是第一行第一列。所以例如一个格子的
阅读全文
摘要:UVa 10334 这道题几乎和UVa 495是一样的。
阅读全文
摘要:UVa 495 求第n位斐波那契数列,n<=5000。 还是大数问题,这次是大数加法。仿照UVa 623的解法来做。623位数可以一位一位的增,但是这个需要预先给够位数,要是按六位存一个数组元素里面的话,300位足够了,粗算一下n=5000大概有1044位,len=300*6足够存下了。就是不知道最
阅读全文
摘要:UVa 495 求第n位斐波那契数列,n<=5000。 还是大数问题,这次是大数加法。仿照UVa 623的解法来做。623位数可以一位一位的增,但是这个需要预先给够位数,要是按六位存一个数组元素里面的话,300位足够了,粗算一下n=5000大概有1044位,len=300*6足够存下了。就是不知道最
阅读全文
摘要:http://developer.51cto.com/art/201404/435072.htm 这篇文章讲邻接表讲的很好。记录一下自己的理解。 邻接表用的是链式存储结构,根据图很好理解,但是一看代码就懵了。拿原文提到的一个数据举例: 4 5 1 4 9 4 3 8 1 2 5 2 4 6 1 3
阅读全文
摘要:UVa 10520 哇!简直恶心的递推,生推了半天。。感觉题不难,但是恶心,不推出来又难受。。一不小心还A了[]~( ̄▽ ̄)~*,AC的猝不及防。。。 先递推求出f[i][1](1<=i<=n-1),f[n][i](2<=i<=n)和f[i][j](2<=i<=n-1,1<=j<=i),再递推一次求
阅读全文
摘要:UVa 10446 求(n,bcak)递归次数。自己推出来了一个式子: 其实就是这个式子,但是不知道该怎么写,怕递归写法超时。其实直接递推就好,边界条件易得C(0,back)=1、C(1,back)=1。 Reference Code: Reference Blog:http://knightzon
阅读全文
摘要:UVa 10285 哇,竟然没超时!看网上有人说是记忆化搜索,其实不太懂是啥。。。感觉我写的就是毫无优化的dfs暴力。。。。。。。 建立一个坐标方向结构体数组,每个节点dfs()往下搜就好了。
阅读全文
摘要:UVa568 题意:求N!(N<=10000)的最后一位非0数。 10000以内5^5 = 3125最多可以影响后5位。所以直接保存后五位就行。
阅读全文
摘要:UVa 10323 题目:计算阶乘在10000~6227020800之间的值,不在范围对应输出Under或者Over。 分析:简单题、数论。因为13!=6227020800,7!<10000<8!所以计算很简单。 注意:负数情况,奇数输出Overflow,偶数输出Underflow。 其实我不明白为
阅读全文
摘要:uva 10220 可采用uva 623这道题求N!,再最后稍微改一下就好。 参考代码:
阅读全文
摘要:UVa 623 计算N! n上限为1000自然不能直接算。所以可以开一个数组f[],f[]每一位存N!结果的6位。如果按进制来理解,就是10^6进制: 例如 11!=39916800=11*10!=11*(3628800)=11*(3*(10^6)^1+628800*(10^6)^0) 11*628
阅读全文
摘要:poj 3225 这题是用线段树解决区间问题,看了两天多,算是理解一点了。 Description LogLoader, Inc. is a company specialized in providing products for analyzing logs. While Ikki is wor
阅读全文
摘要:POJ 2828 还是弱啊。思维是个好东西。。。 刚开始想来想去用线段树存人的话不仅超时,而且存不下。。。居然是存空位! sum[]数组存这个序列空位个数,然后逆序遍历。逆序好理解,毕竟最后一个人插进来位置已经可以确定了,前面的位置就根据他来更新。 1 #include<iostream> 2 #i
阅读全文
摘要:最近学线段树,先来总结一下知道的基础知识。感觉这东西很灵活。 自己现在的理解就是线段树是来维护一个序列的区间查找与修改操作的数据结构,我觉得学好它可能更容易理解树状数组。就像有的网站上说,为什么需要线段树,就是因为它综合起来查找和修改的操作复杂度比较低,都是log级别的。基本线段树都包括Build(
阅读全文
摘要:1<<33不能这么写,1默认int类型,应该改为(long long)1<<33
阅读全文
摘要:POJ 1845 题意不说了,网上一大堆。此题做了一天,必须要整理一下了。 刚开始用费马小定理做,WA。(poj敢说我代码WA???)(以下代码其实都不严谨,按照数据要求A是可以等于0的,那么结果自然就是0了,需要特判一下,但是poj好像没有为0的数据,能AC。先不改了。) 后来看了好多人的博客,发
阅读全文
摘要:UVA 679 紫书P148例题。 题目大意:小球从一棵所有叶子深度相同的二叉树的顶点开始向下落,树开始所有节点都为0。若小球落到节点为0的则往左落,否则向右落。并且小球会改变它经过的节点,0变1,1变0。给定树的深度D和球的个数I,问第I个小球会最终落到哪个叶子节点。 题意容易理解,紫书上给了一个
阅读全文
摘要:UVALive - 7722 一定要自己做出来!
阅读全文
摘要:A - Confusing Date Format 题目大意:就是有六种日期格式,给你一个字符串,判断它能组成多少种可能的日期。 第一次WA是:1.没有判重,2.没有特判题目要求的数据,3.判断天数时少了一个c(天数)>0的条件 第二次WA时:改正了错误2 第三次WA时:改正了错误3 AC那次改正了
阅读全文
摘要:J-Super Sum 题目大意就是给定N个三元组<a,b,c>求Σ(a1^k1*a2^k2*...*ai^ki*..an^kn)(bi<=ki<=ci) 唉。其实题目本身不难的,怪我不知道当时怎么想的。。。本来观察式子很容易能得出结论: 比如<5,2,3>,<2,1,4>,<3,2,2>这组: 5
阅读全文

浙公网安备 33010602011771号