zoukankan      html  css  js  c++  java
  • 【codeforces 411B】Multi-core Processor

    【题目链接】:http://codeforces.com/problemset/problem/411/B

    【题意】

    处理器有n个核;然后有k个存储单元;
    有m轮工作;每轮工作都会给每个核确定一个数字;
    这个数字是这个核这轮工作会填的储存单元的编号x(1< x< k)
    一轮工作可能有多个核去填同一个存储单元;
    这种情况出现时,我们规定填这个存储单元的所有的核都被锁定;
    同时这个存储单元也被锁定;
    下次如果还有核去填这个存储单元的话,不论有没有多个核去填它,它都会被锁定;
    (核被锁定之后忽略后面的操作);
    要求你输出最后每个核被锁定与否;

    【题解】

    一轮一轮地模拟就好;
    每次填一个存储单元之后;
    就在那个存储单元里面(vector)push_back这个核;
    每轮扫一遍所有存储单元;
    对那些已经被锁定的存储单元以及核的个数超过1个的存储单元进行锁核的操作就好;
    存储单元别忘了锁;

    【Number Of WA

    0

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define ms(x,y) memset(x,y,sizeof x)
    #define Open() freopen("F:\rush.txt","r",stdin)
    #define Close() ios::sync_with_stdio(0),cin.tie(0)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    const int N = 110;
    
    int n,m,k,a[N][N];
    int core[N],cell[N];
    vector <int> tcell[N];
    
    int main(){
        //Open();
        Close();
        cin >> n >> m >> k;
        rep1(i,1,n){
            rep1(j,1,m){
                cin >> a[i][j];
            }
        }
        rep1(j,1,m){
            rep1(i,1,k) tcell[i].clear();
            rep1(i,1,n){
                if (core[i]) continue;
                tcell[a[i][j]].pb(i);
            }
            rep1(i,1,k){
                if ( (int) tcell[i].size() > 1 || cell[i]){
                    rep1(l,0,(int) tcell[i].size()-1){
                        core[tcell[i][l]] = j;
                    }
                    if (!cell[i]) cell[i] = j;
                }
            }
        }
        rep1(i,1,n)
            cout << core[i] << endl;
        return 0;
    }
    
  • 相关阅读:
    Spring Boot整合Freemarker
    Spring Boot异常处理
    CSAPP缓冲区溢出攻击实验(下)
    SparkSQL基础应用(1.3.1)
    程序员的自我修养:(1)目标文件
    CSAPP缓冲区溢出攻击实验(上)
    Redis源码学习:字符串
    六星经典CSAPP-笔记(7)加载与链接(上)
    Redis源码学习:Lua脚本
    六星经典CSAPP-笔记(10)系统IO
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626253.html
Copyright © 2011-2022 走看看