(以“分类:模拟与排序 ==摘要== {{信息题|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 | + | *来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70594 2015 Winter Day 1 div1] B题 |
| − | *原题链接:http://codeforces.com/problemset/problem/ | + | *原题链接:http://codeforces.com/problemset/problem/411/B |
| + | |||
==题意== | ==题意== | ||
n核处理器,如果在某时间多核访问到同一内存,或者访问到已经被锁的内存,那么锁定该内存和该处理器,问每个处理器被锁定的时间。 | n核处理器,如果在某时间多核访问到同一内存,或者访问到已经被锁的内存,那么锁定该内存和该处理器,问每个处理器被锁定的时间。 | ||
| 第9行: | 第10行: | ||
按要求模拟即可。 | 按要求模拟即可。 | ||
==代码== | ==代码== | ||
| − | {{折叠| | + | {{折叠|411B.cpp代码已折叠 |
|<pre> | |<pre> | ||
#include<cstdio> | #include<cstdio> | ||
| 第66行: | 第67行: | ||
} | } | ||
</pre> | </pre> | ||
| − | | | + | |code411B}} |
| 题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 需要注意 |
|---|---|---|---|---|---|
| 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;
}
|