(以“分类:模拟与排序 ==摘要== {{信息题|Multi-core Processor|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70594#problem/B|1|100|time=2015-02-2...”为内容创建页面)
 
摘要: 比赛名
 
(未显示1个用户的1个中间版本)
第2行: 第2行:
 
==摘要==
 
==摘要==
 
{{信息题|Multi-core Processor|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70594#problem/B|1|100|time=2015-02-24 13:12:28}}
 
{{信息题|Multi-core Processor|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70594#problem/B|1|100|time=2015-02-24 13:12:28}}
*来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70594 2015 Winter Warm up div2] B题
+
*来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70594 2015 Winter Day 1 div1] B题
*原题链接:http://codeforces.com/problemset/problem/441/B
+
*原题链接:http://codeforces.com/problemset/problem/411/B
 +
 
 
==题意==
 
==题意==
 
n核处理器,如果在某时间多核访问到同一内存,或者访问到已经被锁的内存,那么锁定该内存和该处理器,问每个处理器被锁定的时间。
 
n核处理器,如果在某时间多核访问到同一内存,或者访问到已经被锁的内存,那么锁定该内存和该处理器,问每个处理器被锁定的时间。
第9行: 第10行:
 
按要求模拟即可。
 
按要求模拟即可。
 
==代码==
 
==代码==
{{折叠|441B.cpp代码已折叠
+
{{折叠|411B.cpp代码已折叠
 
|<pre>
 
|<pre>
 
#include<cstdio>
 
#include<cstdio>
第66行: 第67行:
 
}
 
}
 
</pre>
 
</pre>
|code441B}}
+
|code411B}}

2015年2月27日 (五) 15:45的最后版本

摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 需要注意
Multi-core Processor ★☆☆☆☆ 答案正确 100 2015-02-24 13:12:28

题意

n核处理器,如果在某时间多核访问到同一内存,或者访问到已经被锁的内存,那么锁定该内存和该处理器,问每个处理器被锁定的时间。

题解

按要求模拟即可。

代码

411B.cpp代码已折叠
展开折叠内容
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std;
#define dsi(n) int n;scanf("%d",&n)
#define si(n) scanf("%d",&n)
#define f(i,n) for(int i=1;i<=n;++i)
#define fi(n) f(i,n)
#define f0(i,n) for(int i=0;i!=n;++i)
#define fd(i,n) for(int i=n;i>=1;--i)
#define ci const int&
#define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
#define c(x) const x&
class st
{
    int x,y;
    friend bool operator <(const st&a,const st&b){return a.x<b.x;}
};
int a[1000][1000]={},used[1000]={},ans[1000]={},deadM[1000]={},deadC[1000]={};
int main()
{
    dsi(n);
    dsi(m);
    dsi(k);
    f(i,n)f(j,m)
    {
        si(a[i][j]);
    }
    memset(ans,17,sizeof(ans));
    f(j,m)//cycle//
    {
        memset(used,0,sizeof(used));
        f(i,n)//core//
        {
            if(!deadC[i])
                ++used[a[i][j]];
        }
        f(i,n)//core//
        {
            if(!a[i][j])continue;
            if(used[a[i][j]]>=2||deadM[a[i][j]])
            {
                ans[i]=min(j,ans[i]);
                deadM[a[i][j]]=1;
                deadC[i]=1;
            }
        }
    }
    f(i,n)
        printf("%d\n",ans[i]==ans[999]?0:ans[i]);
    return 0;
}

著作权声明[编辑]

关于[编辑]