ACM——01排序】的更多相关文章

http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1024 01排序 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:708            测试通过:258 描述 将01串首先按长度排序,长度相同时,按1的个数多少进行排序,1的个数相同时再按ASCII码值排序. 输入 输入数据中含有一些01串,01串的长度不大于256个字符…
题目http://acm.hdu.edu.cn/showproblem.php?pid=2546 思路:再01背包的问题上稍作修改 如何满足 :卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)?并使得余额最少? 找到最贵的菜,卡上的剩余金额大于或等于5元,必然要买下它,先让容量-5再进入01背包循环,找到dp[容量-5](存的是该容量下,最大的价值). 用了swap函数来找最贵的菜,所以用的C++头文件. 这是回家耍了6天后的第一个ACM题…
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:712 解决:379 题目描述: 今年的ACM世界总决赛快要开始了,需要有一个排名算法来对每支队伍进行现场排名.ACM组委会把这个任务交给了你,相信你一定能很好地完成.  排名规则如下:通过题的数目多的队伍排名靠前,如果有多支队伍过的题的数目相同,则罚时少的队伍排名靠前. 输入: 输入的第一行包括一个整数N(1<=N<=100),代表参加比赛的队伍的个数.  接下来的N行每行包括一个字符串和两个整数num,punish,它们之间用空格隔…
比赛描写叙述: 的个数同样时再按ASCII码值排序. 输入: 个字符. 输出: 串的顺序.使得串按基本描写叙述的方式排序. 例子输入: 例子输出: 被AC的代码例如以下: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] str =…
简单选择排序 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:836            测试通过:259 描述 给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中的简单选择排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列. 输入 共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤400,每个元素值范围为 [0,100000) 输出 三个部分 第1部分为两行,第1行输出文字“Source:…
Description 一个数组,要求先对前n个数字排序(以方便后续操作):又要求对前n+i个数字排序:又要求对前n+j - 前n+k个数字排序(i.j.k的大小远小于n,且i.j.k间没有大小关系).总之就是对一个不定的范围内数据要进行频繁的按大小顺序调用,但是这个范围边界变化不大,很多数据重叠,这样每次都对此次区间内数据排序,频繁排序的话很费时间. 例如一个数组,一共9个数字,下标0~8.要求: 每次取一个区间,计算区间内的值.很容易想到对区间排个序,即可方便获得最大.次大值等. 对1~5排…
点击可展开上面目录 Acm.njupt 1001-1026简单题 第一页许多是简单题,每题拿出来说说,没有必要,也说不了什么. 直接贴上AC的代码.初学者一题题做,看看别人的AC代码,寻找自己的问题. 记得实习公司的经理说过,最快提高编码水平的方法有一个就是看别人的代码.简单题没有太多需要解释的方法,就是训练一些编码方法. 由于第一页的许多题目都是大二的时候写的,许多代码不简洁,算法太水,低级错误等等应该都有.不管怎样,还是AC了. 贴出来,有问题大家指出,太菜的地方各位谅解. 1001 整数求…
(* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public License * or alternatively the restrictions of the Mozilla Public License 1.1 * * Software distributed under the License is distributed on an "AS IS&q…
(* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public License * or alternatively the restrictions of the Mozilla Public License 1.1 * * Software distributed under the License is distributed on an "AS IS&q…
题目大意: 每次把一个区间升序或降序排序,最后问一个点是什么. 题解: 如果只是问一个点,这确乎是个经典题,二分一下答案然后线段树维护01排序. 从pty那里get到了可以用线段树的合并与分裂实时地维护整个序列. 考虑一次排序就把这个区间的数搞到一个线段树上,在根处标记是正的还是反的. 如果想搞到一棵树上就需要用到分裂与合并,根据势能分析,复杂度还是\(O(n~log~n)\). Code: #include<bits/stdc++.h> #define fo(i, x, y) for(int…