zoukankan      html  css  js  c++  java
  • Day2 T3 删除

    题目

      Alice上化学课时又分心了,他首先画了一个3行N列的表格,然后把数字1到N填入表格的第一行,保证每个数只出现一次,另外两行他也填入数字1到N,但不限制每个数字的出现次数。
      Alice现在想删除若干列使得每一行排完序后完全一样,编程计算最少需要删除多少列。

    输入

    第一行包含一个整数N,表示表格的列数。
    接下来三行每行包含N个整数,每个数在1到N之间,而且第一行的数互不相同。

    输出

    输出最少需要删除的列数。

    样例

    输入 输出
    7
    5 4 3 2 1 6 7
    5 5 1 1 3 4 7
    3 7 1 4 5 6 2
    4
    9
    1 3 5 9 8 6 2 4 7
    2 1 5 6 4 9 3 4 7
    3 5 1 9 8 6 2 8 7
    2

    样例解释

    例1中Alice需要删除第2、4、6、7这四列,然后每行排完序都是1、3、5。

    数据范围

    40%的数据N (leqslant) 100
    70%的数据N (leqslant) 10000
    100%的数据N (leqslant) 100000

    题解

      まび这么简单一道题我考场上竟然没有做出来。
      开两个桶记录第二行和第三行每一个数出现的次数,然后扫一遍第一行,如果某一个数第一行有而第二、三行没有,那么就要删除这一列。而在这个过程中又会删除掉第二、三行的一些数,可能会导致又有某一个数第一行有而第二、三行没有,所以又要重复这一操作,直到第一行的每一个数在第二、三行都有,这个时候三行的数就都一样了。

    #include<bits/stdc++.h>
    using namespace std;
    int n,ans=0;
    int a[100010],b[100010],c[100010];
    int tb[100010]={0},tc[100010]={0};
    bool book[100010]={false};
    
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        for(int i=1;i<=n;i++){
            scanf("%d",&b[i]);
            tb[b[i]]++;
        }
        for(int i=1;i<=n;i++){
            scanf("%d",&c[i]);
            tc[c[i]]++;
        }
        for(;;){
            bool flag=false;
            for(int i=1;i<=n;i++){
                if(book[i]) continue;
                if(!tb[a[i]] || !tc[a[i]]){
                    book[i]=true;
                    ans++;
                    tb[b[i]]--;
                    tc[c[i]]--;
                    flag=true;
                }
            }
            if(!flag) break;
        }
        printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    Servlet访问第一次500,刷新后404的解决办法
    关于eclipse保存代码很慢,提示the user operation is waiting的问题
    编译时,运行时解释
    JDK、JRE、JVM
    IDEA使用maven中tomcat插件启动项目乱码问题
    treeGrid树形数据表格的json数据格式说明
    Maven最佳实践:Maven仓库(转)
    intelliJ idea debug模式下启动慢的原因
    基于 Annotation 拦截的 Spring AOP 权限验证方法
    化繁为简 如何向老婆解释MapReduce?(转载)
  • 原文地址:https://www.cnblogs.com/znk161223/p/11453143.html
Copyright © 2011-2022 走看看