上一页 1 ··· 63 64 65 66 67 68 69 70 71 ··· 85 下一页
摘要: 题意:输入1~n的一个排列(3<=n<=500),每次可以交换两个整数。用最少的交换次数把排列变成1~n的一个环状序列。 分析:正序反序皆可。枚举每一个起点,求最少交换次数,取最小值。 求最小交换次数solve函数,将所有不需要交换的数字用cnt统计出来,而需要交换的数字集合(个数为n)交换次数是n 阅读全文
posted @ 2017-02-08 13:46 Somnuspoppy 阅读(221) 评论(0) 推荐(0)
摘要: 题意:有一个n位整数(不以0开头),要求删除其中的d个数字,使结果尽量大。(1<=d<n<=10^5) 分析: 1、从头扫一遍,如果当前填的数字小于n-d,则将当前数字填上。 2、如果已经的填的数字个数加上当前位置及其后的所有数字个数>n-d,即在当前位置上还有足够多的数可以填写,即cnt + (n 阅读全文
posted @ 2017-02-07 20:30 Somnuspoppy 阅读(189) 评论(0) 推荐(0)
摘要: 题意:输入两个等长(长度不超过100)的串S和T,其中S包含字符0,1,?,但T只包含0和1,你的任务是用尽量少的步数把S变成T。有以下3种操作: 1、把S中的0变成1。 2、把S中的“?”变成0或1。 3、交换S中任意两个字符。 分析: 1、为保证步数最少,先统计两串中1的个数和1的位置。如果cn 阅读全文
posted @ 2017-02-07 17:49 Somnuspoppy 阅读(324) 评论(0) 推荐(0)
摘要: 题意:输入一个n(2<=n<=1000,n是偶数)个字符串的集合D,找一个长度最短的字符串S(不一定在D中出现),使得D中恰好一半串小于等于S,另一半串大于S。如果有多解,输出字典序最小的解。 分析:找到最中间的两个串,直接按位构造。 阅读全文
posted @ 2017-02-07 16:36 Somnuspoppy 阅读(267) 评论(0) 推荐(0)
摘要: 题意:给定N(N<=10^5)个物品的重量Li,背包的容量M,同时要求每个背包最多装两个物品。求至少要多少个背包才能装下所有的物品。 分析:先排序,从最重的开始装,如果重量小于M,则如果能装一个重量最轻的,就再装一个重量最轻的,依此类推。 阅读全文
posted @ 2017-02-07 14:42 Somnuspoppy 阅读(301) 评论(0) 推荐(0)
上一页 1 ··· 63 64 65 66 67 68 69 70 71 ··· 85 下一页