03 2017 档案

摘要:1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits 阅读全文
posted @ 2017-03-31 19:44 Kcl886 阅读(380) 评论(0) 推荐(0)
摘要:题意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线? 思路:每个城市才是要构造的二分图的顶点,先把每个*用数字1-n标记起来,然后构造无向二分图,无向二分图的构造需要拆点,即1<—>2之间 阅读全文
posted @ 2017-03-28 21:39 Kcl886 阅读(233) 评论(0) 推荐(0)
摘要:分别维护一个单调递减的队列和单调递增队列就可以了,但是这题莫名的坑,要用C++提交卡编译器的时间才能AC,真的是日了狗了,以后就用C++提交好了,不用别的了。 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include 阅读全文
posted @ 2017-03-04 23:57 Kcl886 阅读(127) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits 阅读全文
posted @ 2017-03-04 01:20 Kcl886 阅读(140) 评论(0) 推荐(0)
摘要:题意:一个b位的数Y,每一位的数可以从题目给的n个数里面选,问有多少种方案使得Y mod x == k? 思路:数位dp,另dp[i][k]表示前i位模x结果为k的方案数,则转移方程为:dp[i][(k*10+j)%x]+=dp[i-1][k]*num[j](0<=j<=9),num[j]为题目所给 阅读全文
posted @ 2017-03-02 21:05 Kcl886 阅读(300) 评论(0) 推荐(0)
摘要:题意:n个人,每个人ci的金币,每天最富有的人都会给最贫穷的人1金币,问k天后最富有人和最贫穷的人差了多少金币。 思路:不妨把穷人和富人放在两个时空中step1: 假设富人不用掏钱,每天给最穷的人1枚金币。求出最穷的人金币数:xstep2: 假设穷人得不到钱,每天富人有1枚金币不翼而飞。求出最富的人 阅读全文
posted @ 2017-03-02 13:29 Kcl886 阅读(194) 评论(0) 推荐(0)