tricks
文章平均质量分 79
acerlawson
这个作者很懒,什么都没留下…
展开
-
LIS的另一种简单做法nlogn(带路径)
最长上升子序列(Longest Increasing Subsequence,LIS),在计算机科学上是指一个序列中最长的单调递增的子序列。第一种做法是离散化+树状数组/线段树,这种方法学了树状数组的人都能想得到。第二种是二分+dp。小了个常数,时间和空间要稍稍比前面的快那么一些。定义dp[i]=j,表示长度为i的上升自序列最小末端元素是j。下面给出代码,不详细解释。#incl原创 2015-01-23 19:36:19 · 797 阅读 · 0 评论 -
SGU 477 doors
477. DoorsTime limit per test: 1.5 second(s)Memory limit: 65536 kilobytesinput: standardoutput: standardIt seems that the Museum of the Modern Technology is the only place where原创 2015-03-15 00:17:49 · 511 阅读 · 0 评论 -
Codeforces 489E Hiking
E. Hikingtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA traveler is planning a water hike along the rive原创 2015-03-10 17:52:48 · 519 阅读 · 0 评论 -
Aizu 1333 Beautiful Spacing
这题为某种取最值的dp提供一种解题思路,通过二分,可以使得时间复杂度从n^2降到nlogn。dp我是倒序做的,定义dp[i]表示从第i个为该行第一个单词时,最大的空格是否小于二分的答案。再定义两个指针从后往前边做边扫,再弄个前缀和判断指针之间是否有解,再来决定这个第i位的dp值的真假。#include#include#include#include#includeusing原创 2015-03-24 00:08:35 · 345 阅读 · 0 评论 -
低级数据结构
数据结构原创 2015-01-26 10:41:59 · 291 阅读 · 0 评论 -
HDU 5341 Gcd and Lcm
题意:给你一个N,让你求∑i=1n∑j=1n∑k=1n∑l=1nlcm(gcd(i,j),gcd(k,l))参考论文:贾志鹏线性筛首先,考虑子问题,求这样一个东西:∑i=1n∑j=1n[(i,j)=d](中括号是一个函数:若其中的命题为真,返回1,否则返回0)转化一下,就是求1到n/d两两之间互素的数然后再乘以d就是gcd为d的数了。原创 2015-08-29 10:57:53 · 714 阅读 · 0 评论