文章分类 -  acm-技巧及模拟题

1 2 下一页

hdu4312 n个平面点选取一个使距离该点切比雪夫距离最小 枚举/快速计算曼哈顿距离
摘要:切比雪夫距离和曼哈顿距离就是变成了八个方向只用一步首先八个方向距离就变成了max(|x1-x2|,|y1-y2|)这样的一个最值式,似乎并没有什么卵用学到了一个非常机智的转化:max(|x1-x2|,|y1-y2|)=(|x1-x2+y1-y2|+|x1-x2-y1+y2|)/2 。这个公式需要从两... 阅读全文

posted @ 2015-05-15 20:59 xiao_xin 阅读(640) 评论(6) 推荐(0)

hdu4311 n个平面点选取一个使距离该点曼哈顿距离最小 枚举/快速计算曼哈顿距离
摘要:这个题目和前几天做acdream的那个题目类似,可以说是加强版那个题目是一维点,那个题目其实只用看中间两个点,我当时做的时候就是枚举n个点,然后累加累减距离达到快速计算其他点到该点距离本题完全可以利用这个分开计算其他点到这个点x轴向与y轴向距离和记录id,两次排序,然后累加累减距离,最后选取n个点x... 阅读全文

posted @ 2015-05-13 23:57 xiao_xin 阅读(1849) 评论(0) 推荐(0)

hdu4313 树上有一些特殊点,使这些特殊点不连通至少需要割掉多少边权 并查集/类似kruskal
摘要:想了一会突然想到蓝桥杯最后一题,用了和那题类似的技巧处理,当时写完还自我陶醉了一下,虽然只能过小数据,但我过得姿势好看哇==将边权从大到小排序,然后开始加边,开了一个vis数组(就是这个数组)表示这个集合为真或者假真表示集合内有特殊点,反之无,只要出现两边都为真就ans+该边,vis伴随集合并相应的... 阅读全文

posted @ 2015-05-12 23:18 xiao_xin 阅读(253) 评论(0) 推荐(0)

hdu4638 1-n的一个全排列,q个询问,对于每个询问区间有多少个连续区间 : 技巧/离线/树状数组
摘要:随机开了场多校,题目挺好玩题意化简下来就是比如有5 3 4 6 10 11,那么2-6里面有三个连续区间假设一个区间都是独立的,就是最多有l-r+1个连续区间,然后我们要做的就是减去重复的我们离线从左到右扫描原数组,只要a[i]-1出现在前面,那么就在这个位置+1,表示当前i这个不算独立,同理a[i... 阅读全文

posted @ 2015-05-09 04:00 xiao_xin 阅读(427) 评论(0) 推荐(0)

CodeForces 536A Tavas and Karafs :n个数每次最多将m个数-1,快速计算减完次数:二分/贪心
摘要:英语弱是硬伤啊==比赛看了A半小时活生生没看懂题意,后来带数据带猜才明白题意输入A,B,n,表示一个首项为A公差为B的数,n个询问每个询问给出l,t,m你需要算出最大的r,使l-r之间的数通过(标题上面)的规则在t次内减完==看明白题意,首先想到就是一个二分,然后在二分中需要快速check出是否可行... 阅读全文

posted @ 2015-04-15 17:49 xiao_xin 阅读(432) 评论(0) 推荐(0)

hdu5200 n棵树m次询问,每次询问独立砍掉小于b[i]的树,输出每次砍过的连通区域个数:技巧/离线
摘要:将询问的高度和树的高度都变成离线排个序,然后就可以把砍树变成加树对于一个询问高度b[i],将还未加入的所有大于这个高度的树都加入,加入的树1.左右相邻都有树?连通区域-12.左右相邻都没树?连通区域+1再把这个位置种上树,最后输出答案== 1 #include 2 #include 3 #inclu... 阅读全文

posted @ 2015-04-07 23:52 xiao_xin 阅读(114) 评论(0) 推荐(0)

hdu5195 n个点m条边最多删k个边尽量使某种拓扑序最大:贪心+优先队列
摘要:比赛时总感觉很混乱,其实昨天晚上仔细一想就很简单了==首先,我是知道我要拿最大id点且入度小于等于k的,那就拿,继而,需要将他相连边全部入度-1,如果入度小于等于k加入优先队列一直到队列为空,类似bfs那样找,代码实现也比线段树好多了==心塞,本来手速过A分挺高,手贱hack又是一夜回到解放前,又掉... 阅读全文

posted @ 2015-03-29 23:50 xiao_xin 阅读(303) 评论(0) 推荐(0)

CodeForces 364B Free Market :每次可以从已有商品换取高于价值不超过d的没有选过的价值,选最高价值 :dp/贪心
摘要:题目中规定要换来的物品必须要是目前没有的=其实如果有重复的就可以把重复的去掉。。所以是等价的所以可以在输入的时候预处理取与不取当前值能拿到的值放入dp中然后在0的基础上一直寻找最大可交换的物品,一直到找不到结束== 1 #include 2 #include 3 #include 4 using n... 阅读全文

posted @ 2015-03-28 00:24 xiao_xin 阅读(180) 评论(0) 推荐(0)

CodeForces 385C Bear and Prime Numbers :给定n个数和m个询问,对于每个询问n个数里面是l-r中质数倍数和(不重复) :筛法的技巧
摘要:题意和范围:http://codeforces.com/problemset/problem/385/C好题呀==在筛质数的过程中顺带累加筛他的质数vis值最后统计就是前缀和相减== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 17:21 xiao_xin 阅读(271) 评论(0) 推荐(0)

CodeForces 232B Table : n*m (m>>n)的矩阵使每个n*n矩阵里面准确包含k个点,有多少种放法 :dp/数学思维/快速幂
摘要:本题关键地方在于:只要确定前n列的点阵,后面每列放多少就全部确定了==这样就可用dp和组合数预处理递推前面的n列放法,同时利用快速幂将所有列放法计算出来 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long... 阅读全文

posted @ 2015-03-27 17:07 xiao_xin 阅读(364) 评论(0) 推荐(0)

CodeForces 201A Clear Symmetry :寻找最小的n使n*n矩阵里面可以对称且不相邻的放下至少x个1 :数学/思维/找规律
摘要:首先n为偶数必然没有n为奇数优==而n为奇数最多能放(n^n+1)/2个1特别注意特判x=3的时候需要5个,因为3个那样放就相邻了== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n... 阅读全文

posted @ 2015-03-27 16:24 xiao_xin 阅读(184) 评论(0) 推荐(0)

CodeForces 18D Seller Bob :包含win x和sell x的组合,拿取价值为2^x,这个区间被拿过就不能再拿,问所拿最大价值:贪心+大数
摘要:注意到一个重要的信息,每个x对应的sell最多只有一个=2^x>2^(x-1)+2^(x-2)+...+1因此可以按照x的sell从高到低排序,继而扫每个sell,对于每个sell从原数组结尾到开头扫到第一个win,再更新这个区间不可卖即可发现函数返回vector写些简单的大数还挺好的== 1 #i... 阅读全文

posted @ 2015-03-26 23:45 xiao_xin 阅读(149) 评论(0) 推荐(0)

CodeForces 204A Little Elephant and Interval :计算L到R内有多少数的首尾数字相同:数学思维
摘要:转化成1-m里面多少个首尾数字相同数字对于个位数本身满足而其他的,注意到对于每一个x,x/10再加上末尾固定的数即满足,所以答案为m/10+9?最后注意到如果m的个位数 2 long long fun(long long m) 3 { 4 if(m=10) m/=10; 7 if(m... 阅读全文

posted @ 2015-03-26 22:23 xiao_xin 阅读(336) 评论(0) 推荐(0)

CodeForces 343B Alternating Current :两根绳子上下绕在一起,问拉住上下绳子能不能分开:思维+栈
摘要:图见:http://codeforces.com/problemset/problem/343/B巧妙!将红上蓝下记为1,红下蓝上记为-1,压栈,相同相消,最后栈中无元素即可以分开= 1 #include 2 #include 3 #include 4 #include 5 using namesp... 阅读全文

posted @ 2015-03-26 11:51 xiao_xin 阅读(395) 评论(0) 推荐(0)

CodeForces 343A Rational Resistance :最少需要多少个1Ω电阻并串联形成目标电阻:思维
摘要:串联1Ω电阻:R+1并联1Ω电阻:R/(R+1)这样就从目标电阻倒推回去需要多少个 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 long long a,b,x,tmp; 8 scanf(... 阅读全文

posted @ 2015-03-25 22:21 xiao_xin 阅读(232) 评论(0) 推荐(0)

CodeForces 70C Lucky Tickets :找到范围最小的区间使1区间找到的a和2区间找到的b使a*b=rev(a)*rev(b)大于等于w个:技巧(尺取)+map
摘要:转化成a/rev(a)==rev(b)/b这样就容易做了先判断大区间有没有到w个,然后开两个map进行尺取x=n1 y=1如果当前对数>=w x--,否则y++,中间有涉及到两个map的删减以及在满足情况下更新答案 1 #include 2 #include 3 #include 4 #includ... 阅读全文

posted @ 2015-03-25 20:42 xiao_xin 阅读(302) 评论(0) 推荐(0)

CodeChef RRMATRIX Strange Matrix :矩阵行列标号和列行标号,有多少个重合:数学+思维
摘要:设i行j列=a行b列列出表达式进行化简,会发现就是个gcd 1 #include 2 #include 3 #include 4 using namespace std; 5 int gcd(int x,int y) 6 { 7 if (y==0) return x; 8 return gc... 阅读全文

posted @ 2015-03-25 20:13 xiao_xin 阅读(96) 评论(0) 推荐(0)

CodeForces 222D Olympiad : 给出所有学生两轮考试分数,某人两轮分数和>=k,求可能的最高和最低名次:思维&贪心
摘要:最高就是第一名=最低的话贪心,一轮从大到小,另一轮从小到大,尺取最多即最多能有多少个>=k 1 #include 2 #include 3 #include 4 using namespace std; 5 int a[100005],b[100005]; 6 int main() 7 { 8 ... 阅读全文

posted @ 2015-03-25 20:08 xiao_xin 阅读(281) 评论(0) 推荐(0)

CodeForces 222B Cosmic Tables :一个矩阵对它进行k次操作,交换行、列,询问i行j列的数值:技巧
摘要:不去实际上交换行和列=用两个数组表示当前行/列是原数组哪一行/列,这样只用交换变量 1 #include 2 #include 3 #include 4 using namespace std; 5 int a[1005][1005],idx[1005],idy[1005]; 6 int main(... 阅读全文

posted @ 2015-03-25 20:01 xiao_xin 阅读(260) 评论(0) 推荐(0)

CodeForces 222A Shooshuns and Sequence :每次复制队列中第k个元素到队尾并删除队首元素,几次可以将队列变相同 : 思维
摘要:codeforces好多这样的想到很简单,想不到感觉难到爆的题目,思维!很简单:只要原序列第k个元素后面有和第k个不一样的就变不了,思考=可以就看第k个前面连续多少个和第k个相同即可= 1 #include 2 #include 3 #include 4 using namespace std; 5... 阅读全文

posted @ 2015-03-25 19:37 xiao_xin 阅读(339) 评论(0) 推荐(0)

1 2 下一页

导航