青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品



May the force be with you!
posts - 52,  comments - 33,  trackbacks - 0
一次AC了這個模擬題,本來是想用面向?qū)ο蟮乃枷雭韺懀贿^最后寫成了這個樣子。。。
                            simbaforrest
                            2007/12/27
#include <iostream>
#include 
<stdlib.h>
#include 
<string.h>
using namespace std;

class map
{
    
public:
        
int WE;
        
int NS;
        
int grid[110][110];
        map() {};
        
void init(int we, int ns)
        {
            WE 
= we;
            NS 
= ns;
            memset(grid,
0,sizeof(grid));
        };
        inline 
void setR(int we, int ns, int rid)
        {grid[ns][we]
=rid;}
        
void show()
        {
            printf(
"map:WE=%d,NS=%d\n",WE,NS);
            
for(int i=NS; i>0; i--)
            {
                
for(int j=1; j<=WE; j++)
                    printf(
"%d",grid[i][j]);
                printf(
"\n");
            }
        }
        
void report(int rbt=-1int crash=-8)
        {
            
if(rbt == -1)
                printf(
"OK\n");
            
else if(crash == -1)
                printf(
"Robot %d crashes into the wall\n",rbt);
            
else
                printf(
"Robot %d crashes into robot %d\n",rbt,crash);
        };
//        friend class robot;
};
map Map;

class robot
{
    
public:
        
//static int totalnum;
        int id;
        
int ns,we;
        
int face;
        
int crash;
        robot() {};
//        friend class command;
        void init(int rid,int WE, int NS, char F)
        {
            id 
= rid;
            ns 
= NS;
            we 
= WE;
            Map.setR(we,ns,id);
            crash 
= 0;
            
switch(F)
            {
                
case 'N':face = 0;return;
                
case 'S':face = 2;return;
                
case 'W':face = 3;return;
                
case 'E':face = 1;return;
            }
        };
        
        inline 
void turnL(){face = ((face-1)+4)%4;};
        inline 
void turnR(){face = (face+1)%4;};
        
void Move()
        {
            Map.grid[ns][we] 
= 0;
            
switch(face)
            {
                
case 0:
                    ns
++;break;
                
case 1:
                    we
++;break;
                
case 2:
                    ns
--;break;
                
case 3:
                    we
--;break;
            }
            iscrash();
            
if(crash==0)
                Map.grid[ns][we] 
= id;
        };
        inline 
void iscrash()
        {
            
if(ns<=0 || ns>Map.NS || we<=0 || we>Map.WE)
            {
                crash 
= -1;//crash the wall
                return;
            }
            
int idtmp = Map.grid[ns][we];
            
if( idtmp!=0 )
            {
                crash 
= idtmp;//crash the idtmp robot
            }
        };
};
const int maxn = 101;
robot R[
101];

class command
{
    
public:
        
//static int totalnum;
        int robotid;
        
char action;
        
int repeat;
        command() {};
        
void init(int id, char act, int rep)
        {
            robotid 
= id;
            action 
= act;
            repeat 
= rep;
        };
        bool doaction()
        {
            
switch(action)
            {
                
case 'L':
                    
while(repeat--)
                    {R[robotid].turnL();}
return 1;
                
case 'R':
                    
while(repeat--)
                    {R[robotid].turnR();}
return 1;
                
case 'F':
                    
while(repeat--)
                    {
                        R[robotid].Move();
                        
int tmp = R[robotid].crash;
                        
if(tmp!=0)
                        {
                            
//Map.show();
                            Map.report(robotid,tmp);
//                            printf("(%d,%d)\n",R[robotid].ns,R[robotid].we);
                            return 0;
                        }
                    }
                    
return 1;
            }
        };
};
command C[
101];
int robotnum,commandnum;

void init()
{
    
int A,B;
    scanf(
"%d%d",&A,&B);
    Map.init(A,B);
//    Map.show();
    int n,m;
    scanf(
"%d%d",&n,&m);
    robotnum 
= n;
    commandnum 
= m;
    
for(int i=1; i<=n; i++)
    {
        
int we,ns;
        
char F[5];
        scanf(
"%d%d%s",&we,&ns,F);
        R[i].init(i,we,ns,F[
0]);
    }
    
for(int i=1; i<=m; i++)
    {
        
int rid,rep;
        
char act[5];
        scanf(
"%d%s%d",&rid,act,&rep);
        C[i].init(rid,act[
0],rep);
    }
//    Map.show();
}

void begin()
{
    
int m = commandnum;
    
for(int i=1; i<=m; i++)
    {
        
//cout<<i<<":\n";
        if(!C[i].doaction())
            
return;
        
//Map.show();
    }
    Map.report();
}

int main()
{
    
int K;
    scanf(
"%d",&K);
    
while(K--)
    {
        init();
        begin();
    }
    
return 0;
}



嗯,下面就是我的代碼了,很久以前寫的了。
思想比較簡單,就不寫了,不過當時wa了一次:
                                                 ————by littlekid
  1 Source Code
  2 Problem: 2632        User: LittleKid
  3 Memory: 216K        Time: 0MS
  4 Language: G++        Result: Accepted
  5 
  6 
  7 # include <stdio.h>
  8 # include <string.h>
  9 
 10 # define N 111
 11 
 12 typedef struct _robot{
 13     int x,y;
 14     int dir;
 15 };
 16 
 17 int a,b;
 18 int m,n;
 19 _robot robot[N];
 20 int map[N][N];
 21 bool OK;
 22 
 23 void initialize(){
 24     for (int i = 0; i < N; i ++){
 25         map[i][0= 0;
 26         map[0][i] = 0;
 27     }
 28 }
 29 
 30 void init(){
 31     scanf("%d %d",&a,&b);
 32     for (int i = 1; i <= a; i ++){
 33         for (int j = 1; j <= b; j ++){
 34             map[i][j] = -1;
 35         }
 36         map[i][b+1= 0;
 37     }
 38     for (int i = 0; i <= b; i ++){
 39         map[a+1][i] = 0;
 40     }
 41 
 42     scanf("%d %d",&n,&m);
 43     int x,y;
 44     char d;
 45     for (int i = 1; i <= n; i ++){
 46         scanf("%d %d %c",&x,&y,&d);
 47         if (map[x][y] == 0) printf("Eroor\n");
 48         map[x][y] = i;
 49         robot[i].x = x; robot[i].y = y;
 50         switch (d){
 51             case 'N':robot[i].dir = 3;
 52                 break;
 53             case 'E':robot[i].dir = 2;
 54                 break;
 55             case 'S':robot[i].dir = 1;
 56                 break;
 57             case 'W':robot[i].dir = 0;
 58                 break;
 59             default: printf("ERROR\n");
 60         }
 61     }
 62     OK = true;
 63 }
 64 
 65 void L(int no, int re){
 66     robot[no].dir = (robot[no].dir + re) % 4;
 67     robot[no].dir += 4;
 68     robot[no].dir %= 4;
 69 }
 70 
 71 void isOK(int no){
 72   //  printf("  %d %d %d %d\n",no,robot[no].x,robot[no].y,robot[no].dir);
 73     int x = robot[no].x;
 74     int y = robot[no].y;
 75     if (map[x][y] >= 0){
 76         OK = false;
 77         if (map[x][y] == 0){
 78             printf("Robot %d crashes into the wall\n",no);
 79         }
 80         else {
 81             printf("Robot %d crashes into robot %d\n",no,map[x][y]);
 82         }
 83         return ;
 84     }
 85     map[x][y] = no;
 86 }
 87 
 88 void Forward(int no){
 89     map[robot[no].x][robot[no].y] = -1;
 90 
 91     switch (robot[no].dir){
 92         case 0: robot[no].x -= 1;
 93             break;
 94         case 1: robot[no].y -= 1;
 95             break;
 96         case 2: robot[no].x += 1;
 97             break;
 98         case 3: robot[no].y += 1;
 99             break;
100         }
101     isOK(no);
102 }
103 
104 void F(int no, int re){
105     while (OK && re--){
106         Forward(no);
107     }
108 }
109 
110 void simulation(){
111     int no,re;
112     char action;
113     for (int i = 0; i < m; i ++){
114         scanf("%d %c %d",&no,&action,&re);
115         if (OK){
116             switch (action){
117                 case 'L': L(no,re);
118                 break;
119                 case 'R': L(no,-re);
120                 break;
121                 case 'F': F(no,re);
122                 break;
123                 default: printf("ERROR!\n");
124             }
125         }
126     }
127     if (OK) printf("OK\n");
128 }
129 
130 int main(){
131     int T;
132     initialize();
133     scanf("%d",&T);
134     while (T--){
135         init();
136         simulation();
137     }
138     return 0;
139 }




posted on 2007-12-27 15:21 R2 閱讀(898) 評論(0)  編輯 收藏 引用 所屬分類: Problem Solving
你是第 free hit counter 位訪客




<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(4)

隨筆分類(54)

隨筆檔案(52)

文章檔案(1)

ACM/ICPC

技術(shù)綜合

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 64231
  • 排名 - 357

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费成人av| 亚洲第一精品在线| 欧美日韩在线一区| 欧美激情视频一区二区三区在线播放 | 亚洲精品一区二区网址| 美女日韩在线中文字幕| 乱码第一页成人| 亚洲第一福利视频| 夜夜精品视频一区二区| 在线视频你懂得一区| 欧美一区二区免费| 久久一区视频| 欧美日韩国产黄| 国产欧美日本| 亚洲黄色天堂| 亚洲影院高清在线| 噜噜噜噜噜久久久久久91| 亚洲国产aⅴ天堂久久| 99精品国产一区二区青青牛奶| 亚洲深夜影院| 久久久久久久久久看片| 欧美精品一区二区三区一线天视频| 欧美午夜宅男影院在线观看| 国产日韩欧美在线观看| 亚洲精品在线观| 久久国产精品久久久久久电车| 欧美国产国产综合| 亚洲自拍另类| 欧美日韩国产成人在线观看| 韩国成人理伦片免费播放| 在线亚洲欧美专区二区| 麻豆91精品| 亚洲欧美日韩精品久久久久| 免费不卡在线观看| 国产一区二区三区在线观看网站| 亚洲免费观看在线观看| 久久午夜影视| 亚洲自拍偷拍网址| 欧美日韩国产精品一区| 亚洲福利视频一区| 久久青草久久| 亚洲欧美久久久| 欧美三区在线视频| 日韩视频在线免费| 欧美高清在线精品一区| 欧美一区二区三区免费观看| 欧美亚州在线观看| 99视频一区| 亚洲国产美女| 免费成人黄色| 尤物九九久久国产精品的特点| 性久久久久久久| 一区二区三区 在线观看视| 免费成人网www| 亚洲国产婷婷香蕉久久久久久| 久久精品99国产精品| 亚洲一区免费| 性高湖久久久久久久久| 国产精品久久久久久妇女6080| 99re热这里只有精品视频| 欧美高清一区| 欧美另类99xxxxx| 亚洲深夜激情| 一区二区冒白浆视频| 欧美日韩少妇| 亚洲在线免费观看| 亚洲伦伦在线| 国产精品va在线播放| 亚洲校园激情| 午夜欧美理论片| 狠狠干成人综合网| 欧美成人午夜| 欧美精品日韩综合在线| 一区二区av在线| 亚洲欧美电影院| 激情五月综合色婷婷一区二区| 久久综合伊人| 欧美黑人国产人伦爽爽爽| 亚洲天堂男人| 欧美一区亚洲二区| 亚洲高清一二三区| 亚洲精品日韩一| 国产精品入口福利| 免费观看成人| 欧美午夜精品久久久久久超碰| 午夜精品视频在线| 久久阴道视频| 亚洲网站视频| 久久国产主播精品| 最新中文字幕一区二区三区| 亚洲精品乱码久久久久久按摩观 | 久久国产精品高清| 欧美在线综合| 亚洲美女在线观看| 亚洲欧美日韩在线播放| 激情国产一区二区| 99国产精品久久久久久久久久| 国产精品永久免费观看| 欧美成人午夜影院| 国产欧美精品在线| 亚洲黄页一区| 国产日韩精品在线播放| 亚洲国产成人porn| 国产午夜精品久久久| 亚洲三级网站| 亚洲大胆av| 亚洲小说春色综合另类电影| 亚洲高清精品中出| 小黄鸭精品aⅴ导航网站入口| 亚洲人成在线观看网站高清| 亚洲欧美精品| 亚洲香蕉伊综合在人在线视看| 久久久亚洲午夜电影| 性18欧美另类| 欧美午夜电影在线| 亚洲国产成人av好男人在线观看| 国产一区二区精品久久| 亚洲视频一区在线| 亚洲日本中文字幕区| 免费高清在线一区| 欧美激情综合色| 韩国自拍一区| 亚洲欧美日韩国产另类专区| 亚洲人成精品久久久久| 亚洲一区免费在线观看| 99国产一区| 欧美日韩hd| 亚洲人成在线观看| 亚洲国产精品999| 久久国产日韩欧美| 久久久久久久久久久久久女国产乱| 国产精品国产福利国产秒拍 | 久久人91精品久久久久久不卡| 欧美日韩亚洲一区二区三区四区| 亚洲高清色综合| 亚洲人线精品午夜| 老巨人导航500精品| 久久最新视频| 在线观看成人av电影| 久久国产精品毛片| 久久一区二区视频| 1024精品一区二区三区| 久久综合一区| 亚洲国产精品999| 日韩午夜激情av| 欧美三区视频| 西瓜成人精品人成网站| 欧美在线观看视频在线| 国产亚洲一区在线| 久久免费高清| 亚洲激情电影在线| 亚洲一级特黄| 国产亚洲午夜| 欧美成人网在线| 在线午夜精品自拍| 久久国产精品99久久久久久老狼| 极品少妇一区二区三区| 牛牛国产精品| 亚洲一二三级电影| 久久er精品视频| 在线看无码的免费网站| 欧美巨乳在线| 午夜精品久久久99热福利| 久久亚洲春色中文字幕| 亚洲国产婷婷综合在线精品| 欧美日韩国产综合视频在线观看 | 欧美ed2k| 亚洲少妇在线| 欧美/亚洲一区| 亚洲视频第一页| 韩国三级电影久久久久久| 欧美国产精品va在线观看| 亚洲主播在线| 亚洲区欧美区| 久久久一二三| 亚洲婷婷综合久久一本伊一区| 国产欧美日韩视频在线观看| 欧美r片在线| 欧美一区三区三区高中清蜜桃| 亚洲第一免费播放区| 欧美专区在线| 一二三四社区欧美黄| 伊人激情综合| 国产精品免费观看视频| 蜜桃av噜噜一区二区三区| 亚洲欧美综合v| 日韩视频在线播放| 欧美精品一级| 在线性视频日韩欧美| 欧美www在线| 欧美一区二区三区精品| 亚洲卡通欧美制服中文| 国产一区二区三区在线播放免费观看| 免费欧美在线| 久久xxxx| 亚洲免费在线视频| 亚洲久久成人| 嫩草伊人久久精品少妇av杨幂| 欧美亚洲综合在线| 夜夜夜久久久|