随笔分类 -  贪心

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 2^y可以由两个2^(y 1)相加得到。 则有一个贪心的策略。 就是2^x尽量都变成2^(x+1) (即能够凑就尽量凑) 如果x还有剩余的话。答案递增1 而凑上去的数字,显然是可以合并成1步操作的。因为他们的和就是2^(x+1) 阅读全文
posted @ 2018-01-24 12:36 AWCXV 阅读(143) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 贪心。 把所有的区间按照右端点为第一关键字,左端点为第二关键字升序排。 然后令now = a[i].second. (now即当前的连续区间的最右端点 即第一个区间的右端点。 第一个点就应该放在这个地方。 然后对于第i+1个区间 阅读全文
posted @ 2018-01-22 17:34 AWCXV 阅读(131) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 对于1操作 令len = r l+1 等价于查找l..r这个范围内 x的倍数的个数 是否大于等于len 1 也即l..r这个范围内 不是x的倍数的个数 小于等于1个 (因为 如果改的话,肯定是把那个数字改成x ,其他n 1个数 阅读全文
posted @ 2018-01-22 16:28 AWCXV 阅读(166) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 考虑任意两个字符串(a,b) 假设a在b的前面 那么如果a+b =b+a 这里的+表示字符串的链接 那么显然需要交换a,b的位置。 这样能让最后结果的字符串的字典序更小一点。 把这个条件写在SORT的CMP函数里面 调用一下之后 阅读全文
posted @ 2018-01-22 14:02 AWCXV 阅读(129) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 把n分解成二进制的形式。 n=2^a0+2^a1+...+2^a[q 1] 则固定就是长度为q的序列。 要想扩展为长为k的序列。 可以把2^x转化为2^(x 1)+2^(x 1)的形式. 这样序列的长度就+1了 它要求max{a 阅读全文
posted @ 2018-01-20 09:04 AWCXV 阅读(244) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 //从大到小枚举第i(1..len1)位 //剩余的数字从小到大排序。 //看看组成的数字是不是小于等于b //如果是的话。 //说明第i位就是选这个数字了。 //接下来枚举下一位。 【代码】 cpp include defin 阅读全文
posted @ 2018-01-14 07:22 AWCXV 阅读(227) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举1的位置在i 往右摆成一排。 a[i+1]..a[n]..a[1]..a[i 1]变为有序的 寻找循环节,每个循环节的长度 1是必要的步骤数 获取必要的步骤数,取最小值。 O(n^2) 往左排成一排 同样的方法处理就好 【代 阅读全文
posted @ 2018-01-11 15:39 AWCXV 阅读(110) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 结束时间比较早的,就早点开始做。 所以,将n件事情,按照结束时间升序排。 然后对于第i件事情。 尽量把它往左排。 即t+1..t+a[i].q 然后如果发现t+a[i].q 【代码】 cpp include using name 阅读全文
posted @ 2018-01-11 14:24 AWCXV 阅读(142) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每个村庄都有一个范围[li..ri] 只要在这个范围内放点都可以“支配”这个村庄。 则问题就等价于线段上有n个区间。 让你选择最少的点。 使得每个区间内都有一个点。 将所有的区间按右端点升序排。其次左端点升序。 然后对于第一个区 阅读全文
posted @ 2018-01-10 21:46 AWCXV 阅读(127) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 证明:前i个数一定能凑够1..sum[i]中的所有数字 i=1时显然成立。 现在假设i =2时结论成立 即前i个数字能凑出1..sum[i] 令k=i+1; 现在证明前i+1个数字能凑出1..sum[i+1] 即用前i个数字和数 阅读全文
posted @ 2018-01-10 15:57 AWCXV 阅读(140) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 感觉最大度数|1就是最多需要的个数了。 就贪心一下。 然后模拟染色的过程就可以了。 (贪心染色就可以了 (看看周围哪个颜色没有,就用它) k在dfs之前忘记判断是不是奇数了。。。。 以及忘记清空g 【代码】 cpp includ 阅读全文
posted @ 2018-01-10 13:27 AWCXV 阅读(171) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 double千万不要用==判断相等。。。 而且两个保留2位有效数字的数字x,y 判断它们相等应该这样。 int temp1 = round(x 100.0),temp2 = round(y 100.0); temp1==temp 阅读全文
posted @ 2018-01-09 22:38 AWCXV 阅读(176) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理出凑够2^j最少需要花费多少钱。 即试着把第i种物品买2^(j i)个,看看会不会更便宜 记录在huafei[0..31]中 然后对于L; 把它转成二进制。累加二进制中对应为1的地方的对应huafei (如果某个高位的1不加 阅读全文
posted @ 2018-01-09 09:57 AWCXV 阅读(215) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 让你把排列1..n变换成对应的输入序列。 每次可以交换前两个数字,或者把第一个数字放到末尾去。 可以逆向考虑。 即把无序的序列变换成有序的. 则第二种操作就变为"把末尾的数字放到最前面去" 则可以这样。 如果a[0] a[1] 阅读全文
posted @ 2018-01-08 16:44 AWCXV 阅读(157) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 考虑删掉第i位。 则第i+1位就会取代第i位。 则肯定第i+1位比第i位大的话,才比较好。 则从小到大贪心删,找到第一个a[i+1] a[i]的i. 然后每次删掉这样的i就可以了。 【代码】 cpp / 1.Shoud it u 阅读全文
posted @ 2018-01-07 14:42 AWCXV 阅读(154) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果1的个数第一个串比第2个串多。 那么就无解。 否则。 找几个位置去凑1 优先找'?'然后才是0的位置 剩余的全都用swap操作就好 【代码】 cpp / 1.Shoud it use long long ? 2.Have y 阅读全文
posted @ 2018-01-07 10:44 AWCXV 阅读(148) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 set1 set1;记录关键点 某个人怪物永远打不死了,第一维是时间,第二维是下标 int dic[1e5+10] //记录对应下标的怪物它此时此刻在何时打不死了 set2 set2;关键点2 有怪物要更新了的时间点,以及记录的 阅读全文
posted @ 2018-01-06 10:31 AWCXV 阅读(434) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 字符串排序后 显然是n/2 1和n/2这两个字符串进行比较。 设为a,b 找到第一个不相同的位置。 即0..i 1是相同的前缀,然后第i位不一样了。 则如果i是a的最后一位了。 那么直接输出a就好。 这样满足大于等于a且小于b 阅读全文
posted @ 2018-01-05 15:27 AWCXV 阅读(147) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每个背包只能装两个东西。 而且每个东西都要被装进去。 那么我们随意考虑某个物品。(不必要求顺序 这个物品肯定要放进某个背包里面的。 那么背包数递增。 那么剩余的空间。 只能装一个了。 要装谁呢? 肯定是尽可能装较大的.所以用up 阅读全文
posted @ 2018-01-05 11:33 AWCXV 阅读(137) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 就是合并果子。。 每次都合并最小的就可以啦。 别忘了初始化 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several sample(at least t 阅读全文
posted @ 2018-01-04 09:00 AWCXV 阅读(159) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页