博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM 媛在努力 华山论剑
阅读量:5143 次
发布时间:2019-06-13

本文共 4345 字,大约阅读时间需要 14 分钟。

媛在努力描述在多媒体数据处理中,数据压缩算法尤为重要。小媛上完课后就想自己发明一个数据压缩算法。她想呀想,终于想到一个方法。在多媒体数据中有很多数据都是重复的,所以她想把连续相同的数据用数据出现的次数和数据本身表示。例如:1 1 1 2 3 3 3 3 3  压缩后及为3 1 1 2 5 3(表示3个1,1个2和5个3)。有想法后小媛就希望把它用代码实现了。但是大家都知道小媛现在整天都忙着苦B的复习考研,连电脑都摸不到。所以她希望作为ACMer的你帮她写一下。输入输入包含多组数据,第一行一个数字T代表输入样例数。每组样例开始一个数M < 10^7表示这组数据中数字的个数,接下来M个数表示要被压缩的数字(数字都不超过int表示的范围)。输出每组测试数据输出一行数字对,如上面描述的一样。两个数字之间用一个空格隔开。样例输入19 1 1 1 2 3 3 3 3 3 样例输出3 1 1 2 5 3
public class Exam1208_1 {    public static void main(String[] args) {                        String str="1 1 1 2 3 3 3 7 7 7 7 9 3 3 3 3";                //1 1 1 2 3 3 3 7 7 7 7 9 3 3 3 3        //3 1 1 2 3 3 4 7 1 9 4 3                int[] ins=toIns(str);        int[] data=ins.clone(); //克隆一份数据保存起来                //编程调试代码         for(int x:ins){            System.out.print(x+" ");        }        System.out.println();                        ArrayList
arr=toArrayList(ins); String temp=""; for(String s:arr){ temp+=s; } System.out.println(temp); String[] strs=temp.split(","); for(String ss:strs){ System.out.print(ss.length()+" "+ss.charAt(0)+" "); } } public static ArrayList
toArrayList(int[] ins) { //1 1 1 2 3 3 3 7 7 7 7 9 3 3 3 3 //1 2 3 7 9 3 ArrayList
arr=new ArrayList
(); arr.add(ins[0]+""); for(int i=1;i
代码2:public class YuanZaiNuLi {    public static void main(String[] args) {        int[] arr=new int[]{1,1,1,2,3,3,3,3,3,1,1,2}; //5 1 3 2        Me(arr,9);    }    public static void  Me(int[] arr,int n){        int count=1;        int num=0;        for(int i=0;i
媛在努力另一种方式,按大小排序,统计所有重复的并在前面统计重复的次数,并放在数组中。例如 1 1 1 2 2 9 2 2 1输出 4 1 4 2 1 9代码:public class Text1 {    public static void main(String[] args) {        String str = "9 2 1 1 1 2 3 3 3 3 3 3";// 测试一组数据        System.out.println(method(str));    }    public static ArrayList
method(String str) { String[] array = str.split(" ");// 拆分 int[] arr = new int[array.length]; for (int i = 0; i < array.length; i++) { arr[i] = Integer.parseInt(array[i]);// 字符串数组转整型数组 } Arrays.sort(arr);// 数组排序 ArrayList
list = new ArrayList
(); for (int i = 0; i < arr.length; i++) { list.add(arr[i]);// 数组放集合里面 } int count = 0; for (int i = 0; i < list.size() - 1; i++) { for (int j = list.size() - 1; j > i; j--) { if (list.get(j).equals(list.get(i))) { list.remove(j);// 去除重复的数 count++; } } } int listcount = arr.length - count;// 去重之后集合的长度 int sum = 0;// 统计个数 int[] ar = new int[listcount]; for (int i = 0; i < listcount; i++) { for (int j = 0; j < arr.length; j++) { if (list.get(i) == arr[j]) { sum = sum + 1; } } ar[i] = sum;//把重复的数放在数组里 sum = 0; } for (int i = 0; i < listcount; i++) { list.add(i * 2, ar[i]);//把数组里面的数添加到集合每个元素的前面 } return list; }}
华山论剑描述有n个剑客(编号1~n)相约华山比剑,分 m 次决斗,为了节省时间,每次决斗编号在[l,r]的剑客一起决斗,然后xi获胜。当进行下一次决斗,失败后的剑客可能再参与到决斗,m 次决斗后可能不止一位获胜者(没有失败过就视为获胜者)。输入多组测试数据。对于每组测试数据,第一行输入n和m。接下来输入m行,每行输入l,r,xi。2 ≤ n ≤ 3*10^5; 1 ≤ m ≤ 3*10^5,l ≤ xi ≤ r输出每组测试数据输出n个数字,数字间用空格隔开。第i个数子表示第一次击败i号剑客的剑客编号,若i号剑客是最后的获胜者,输出0;样例输入3 21 2 21 3 2样例输出2 0 2
public class Exam1208_3 {    public static void main(String[] args) {        //3 2        //1 2 2        //1 3 2        //2 0 2(第一次击败i好选手的选手)                /*        5 3        2 4 3        1 3 2        1 5 4                2 3 2 3 4                5 2        3 5 4        2 5 4        0 4 4 0 4                */                int n=5; //n个剑客        int m=3; //m次决斗                int[][] inss={                {
2,4,3}, {
1,3,2}, {
1,5,4} }; for(int i=1;i<=n;i++){ getResult(inss,i); } } public static void getResult(int[][] inss,int x){ //对于n个剑客,m次决斗 //击败第i个选手的选手 z: for(int i=0;i

 

 

 

转载于:https://www.cnblogs.com/w-xibao/p/8018675.html

你可能感兴趣的文章
linux下各种小命令
查看>>
[hihoCoder] 1044 : 状态压缩·一
查看>>
windows 2003 server 部署MVC3
查看>>
Spring之aop
查看>>
CentOS6.5下Tomcat7 Nginx Redis配置步骤
查看>>
【洛谷 3381】最小费用最大流
查看>>
IDEA使用GsonFormat完成JSON和JavaBean之间的转换
查看>>
LeetCode|Add Two Numbers
查看>>
如果一个女生说,她集齐了十二个星座的前男友,我们应该如何估计她前男友的数量?...
查看>>
ubuntu配置XManager可用
查看>>
Version Control&Git
查看>>
两难的情况该如何处理
查看>>
Git -- 版本回退
查看>>
sqlite多表关联update
查看>>
xss---攻击
查看>>
java基础(六)--- list
查看>>
注解式struts2配合ajax
查看>>
自己写的一个 java swing 的闹钟
查看>>
OpenCV 中Scalar
查看>>
PHP 用Class构造JSON数据
查看>>