zoukankan      html  css  js  c++  java
  • Codeforces Round #603 (Div. 2) B. PIN Codes

    【题目链接】B题链接

    【题目类型】贪心模拟

    【题目大意】一共有t个测试样例。输入n表示有n个长度为4的数字串,(n <= 10)对数字串进行最少次修改,保证不出现重复字符串。

    【解题思路】只修改第一个位置的就可以了,因为最多只输入10个字符串(‘0’ - ‘9’),每次修改前先统计一下每个字符串的第一个位置的字符,因为数据小所以不会超时

    int main(){
        int t; RD(t);
        while(t--){
            int n, ans = 0; RD(n);
            char s[12][6]; REP(i, n) scanf("%s", s[i]);
            FOR( i, 1, n){
                FOR( j, 0, i){
                    if (strcmp(s[i], s[j]) == 0){
                        ans++;
                        set<char> used;
                        FOR(k, 0, n) used.insert(s[k][0]); // 把所有字符串的第一位都送进去, 因为n最多也只能是10, 每次在修改前都会更新一次
                        for(char k = '0'; k <= '9'; k++){
                            if (used.count(k)) continue;
                            s[i][0] = k;
                            break;
                        }
    
                    }
                }
            }
            OT(ans); REP(i, n){printf("%s
    ", s[i]);}
        }
        return 0;
    }
    
    
  • 相关阅读:
    第一次极限测试效果图-完整四张
    第一次极限测试效果图
    ajax遍历list数据解决方法
    读书笔记1
    读书笔记2
    读书笔记3
    每日学习
    关于根据数据反选checkbox
    zabbix监控kernel.pid_max
    React 学习项目1
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12519589.html
Copyright © 2011-2022 走看看