栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3849 Settlers of Catan

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3849 Settlers of Catan

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<set>#include<vector>using namespace std;#define clr(x,a) memset(x,a,sizeof(x));const int maxn= 1000;const int inf = 1012345678;int rd(){int x; scanf("%d",&x);return x;}int dir[6][2]={{-1,-1},{0,-1},{1,0},{1,1},{0,1},{-1,0}};int mx=300,my=300;int g[maxn][maxn],a[maxn][maxn],ans[100000];struct node{int x,y;node(){}node(int aa,int bb){x=aa; y=bb;}}to[100000];int b[10],vis[10];void add(int& i,int& x,int& y,int num){i++;x+=dir[num][0];y+=dir[num][1];g[x][y]=i;to[i]=node(x,y);}void init(){int num,i,j,k,x,y,nx,ny;x=mx,y=my;k=0;num=5;i=1;j=0,k=1;g[x][y]=i;to[i]=node(mx,my);while(i<=10001){if(num==5){if(j==0){add(i,x,y,num);num=0;k++;j=k-2;}else{j--;add(i,x,y,num);}}else {if(j==0){num++;j=k-1;}else{j--;add(i,x,y,num);}}}clr(a,0);clr(b,0);for(i=1; i<=10000; i++){int now=inf,id=0;clr(vis,0);x=to[i].x,y=to[i].y;for(j=0; j<6; j++){nx=x+dir[j][0];ny=y+dir[j][1];vis[a[nx][ny]]=1;}for(j=1; j<=5; j++){if(!vis[j] && b[j]<now){now=b[j];id=j;}}ans[i]=id;a[x][y]=id;b[id]++;}}int main(){int i,j,k;init();int n;n=rd();for(i=0; i<n; i++){j=rd();printf("%dn",ans[j]);}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371488.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号