zoukankan      html  css  js  c++  java
  • 第三届传智杯

    D 终端

    题目描述
    有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal。

    具体来说,它需要支持如下命令:

    touch filename:如果名为 filename 的文件不存在,就创建一个这样的文件,如果已经存在同名文件的话则不进行任何操作。

    rm name:删除名为 name 的文件。如果不存在这样的文件,就不进行任何操作。

    ls:按创建时间为顺序,显示当前已经存在的未被删除的所有文件。

    rename xxx yyy:将名为xxx的文件名字改为 yyy 。如果不存在这样的文件,或者已经存在文件名为 yyy 的文件,则不做任何操作。

    这里所有涉及的文件名都仅由大写或者小写的英文字母构成,且文件名区分大小写。

    输入格式
    第一行一个整数 n ,表示总共要执行的操作数。

    接下来 n 行,每行一个字符串,表示一条命令。

    输出格式
    对于每个 ls 命令,请输出若干行,每行一个字符串,表示一个文件,如果当前并没有任何文件,则什么都不输出。

    思路: 用数组存下所有创建的文件,用TreeSet集合储存未被删除的文件。

    import java.util.Scanner;
    import java.util.TreeSet;
    
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int cnt = 0;
            String[] str = new String[n+5];
            TreeSet<String> tree = new TreeSet<>();
            for(int i=0;i<n;i++){
                String s1 = sc.next();
                if(s1.equals("touch")){
                    String s2 = sc.next();
                    if(!tree.contains(s1)){
                        str[cnt++] = s2;
                        tree.add(s2);
                    }
                }else if(s1.equals("rm")){
                    String s2 = sc.next();
                    if(tree.contains(s2)){
                        tree.remove(s2);
                    }
                }else if(s1.equals("rename")){
                    String xxx = sc.next();
                    String yyy = sc.next();
                    if(tree.contains(xxx)&&!tree.contains(yyy)){
                        tree.remove(xxx);
                        tree.add(yyy);
                        for(int j=0;j<cnt;j++){
                            if(str[j].equals(xxx)){
                                str[j] = yyy;
                                break;
                            }
                        }
                    }
                }else{
                    for(int j=0;j<cnt;j++){
                        if(tree.contains(str[j])) System.out.println(str[j]);
                    }
                }
            }
        }
    }
    

    E 运气

    题目背景
    YYH Land(Yoauld,Youthful & Happy Land) 是位于炽蓝仙野的一片神奇的国度,那里的人们过着无拘无束的的快乐生活。

    题目描述
    哈兰·斯威提是 YYH Land 远近闻名的注铅骰子爱好者。有一天他碰到了这么一个问题:

    你有一枚 6 个面的骰子,分别写了 1,2,3,4,5,6 ,每一面朝上的概率是均等的。

    现在哈兰想知道,如果他投掷 nn 次,并且将结果按顺序写在纸上成为一个数。(比如说如果哈兰扔了 33 次,分别是 3,2,53,2,5 ,那么他最后得到的数就是 325325)他现在想知道这个数是 kk 的倍数的可能情况有多少种,其中 kk 是一个特定的数。

    由于这个方案数可能会很大,所以请你输出结果对 10^9+7取模的结果。

    输入格式
    一行两个整数 n,kn,k ,意义如题所示。

    输出格式
    一行一个整数,表示答案。

    输入输出样例
    输入 #1复制
    2 11
    输出 #1复制
    6

    思路:爆搜

  • 相关阅读:
    的地方d'fe'w
    日期
    equals方法
    接口作为成员变量类型
    匿名内部类注意事项
    匿名内部类
    局部内部类注意问题
    可以
    C中的volatile关键字
    继承权限问题
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847913.html
Copyright © 2011-2022 走看看