zoukankan      html  css  js  c++  java
  • 数据库UVA1592

    数据库UVA1592

    这个题我感觉题目理解有点难度。他的主要意思就是假如有一列有几行相同,那么这相同的部分所在的行必定有其列也是相同的。

    比如第二列的第二,三行是相同的。那么在第二,三行中必定有一个除第二列外相同的列。

    分析:

    这个其实可以用一个四重循环来做的。可能直接想不通,但是你用四种循环的话就很容易了,但这个四重循环肯定会超时。

    可以用这种思路:枚举两列,然后用一个for循环一行一行的检查是不是有相同的。这样就是三重for循环。

    检查相同时可以合并两列,这样减少比较的次数。

    有一个陷阱:可能会有多对结果,只要输出一对就可以了。

    package com.ahyer.bag;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class Main {
        public static String[][] data = new String[10005][15];
        public static Map<String, Integer> hashmap = new HashMap<>();
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNext()) {
                String s = scanner.nextLine();
                int rows = Integer.parseInt(s.split(" ")[0]);
                int columns = Integer.parseInt(s.split(" ")[1]);
                for (int i = 0; i < rows; i++) {
                    String str = scanner.nextLine();
                    String[] split = str.split(",");
                    data[i] = split;
                }
                boolean pnf = false;
                for (int i = 0; i < columns; i++) {
                    for (int j = i + 1; j < columns; j++) {
                        hashmap.clear();
                        for (int k = 0; k < rows; k++) {
                            //合并两列
                            String text = data[k][i] + "," + data[k][j];
                            if (!pnf && hashmap.containsKey(text)) {
                                pnf = true;
                                System.out.println("NO");
                               System.out.format("%d %d
    ", hashmap.get(text) + 1, k + 1);
                                System.out.format("%d %d
    ", i + 1, j + 1);
                            } else {
                                hashmap.put(text, k);
                            }
                        }
                    }
                }
                if (!pnf) System.out.println("YES");
            }
        }
    }
    
    
  • 相关阅读:
    php的rabbitmq扩展(未测试)
    rabbitmq安装
    windows操作系统安装jdk以及配置环境变量
    chrome设置user-agent
    pycharm中快捷键ctrl+c,ctrl+v,ctrl+f失效问题解决
    chrome设置user agent
    Pycharm鼠标滚动控制字体大小
    mouse事件实现可拖拽的div
    DOM事件委托
    !heap 手动查询内存泄漏
  • 原文地址:https://www.cnblogs.com/HyPhoenix/p/14406258.html
Copyright © 2011-2022 走看看