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



May the force be with you!
posts - 52,  comments - 33,  trackbacks - 0
一次AC了這個模擬題,本來是想用面向對象的思想來寫,不過最后寫成了這個樣子。。。
                            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 位訪客




<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(4)

隨筆分類(54)

隨筆檔案(52)

文章檔案(1)

ACM/ICPC

技術綜合

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 64246
  • 排名 - 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>
            欧美在线免费播放| 欧美在线二区| 欧美日韩在线影院| 欧美日韩高清不卡| 欧美午夜视频一区二区| 欧美天天在线| 国产日产亚洲精品系列| 红杏aⅴ成人免费视频| 亚洲大胆人体在线| 9l视频自拍蝌蚪9l视频成人| 一本一本大道香蕉久在线精品| 日韩一级大片在线| 亚洲综合色自拍一区| 久久久国产一区二区三区| 久久免费视频这里只有精品| 欧美福利视频在线| 日韩一级免费观看| 亚洲永久免费观看| 看片网站欧美日韩| 欧美午夜大胆人体| 黄色国产精品| 亚洲视频一区二区在线观看| 久久精品日韩一区二区三区| 免费视频一区| 一本色道久久综合狠狠躁篇的优点 | 好看不卡的中文字幕| 亚洲成色777777在线观看影院| 日韩视频国产视频| 久久动漫亚洲| 一本久久综合| 久久综合中文字幕| 国产九色精品成人porny| 亚洲福利电影| 久久精品一区二区三区四区 | 欧美成人乱码一区二区三区| 欧美视频精品一区| 亚洲精品乱码久久久久久黑人| 校园春色综合网| 日韩一级大片在线| 欧美黄色网络| 黄色成人av| 久久久不卡网国产精品一区| 夜夜爽www精品| 欧美日韩国产首页| 美女网站久久| 一本色道久久综合亚洲精品婷婷 | 日韩午夜高潮| 欧美va亚洲va香蕉在线| 国产一区亚洲一区| 香蕉成人伊视频在线观看 | 亚洲免费观看| 欧美理论大片| 亚洲精品影视| 91久久精品日日躁夜夜躁欧美 | 韩国成人精品a∨在线观看| 一区二区三区精密机械公司 | 国产精品入口福利| 亚洲一区二区精品| 日韩午夜在线| 欧美日韩国产首页| 亚洲视频日本| 亚洲在线观看免费| 国产精品伦理| 欧美专区一区二区三区| 欧美一区二区三区播放老司机| 国产精品人成在线观看免费| 亚洲欧美国产视频| 亚洲一区区二区| 国产精品毛片大码女人| 欧美亚洲午夜视频在线观看| 亚洲欧美乱综合| 国产日韩欧美黄色| 久久噜噜亚洲综合| 免费在线一区二区| 中日韩美女免费视频网址在线观看 | 亚洲国产日韩欧美在线图片| 欧美.www| 欧美福利电影网| 一本色道久久综合亚洲精品高清| 99在线|亚洲一区二区| 欧美午夜在线视频| 久久精品国产99精品国产亚洲性色| 欧美在线播放一区二区| 亚洲成色777777在线观看影院| 亚洲高清视频在线观看| 欧美日韩午夜精品| 亚洲美女av电影| 久久久久久香蕉网| 亚洲人体1000| 一本一道久久综合狠狠老精东影业| 国产精品黄色| 蜜桃av综合| 欧美日韩a区| 久久免费高清| 欧美日韩国产综合一区二区| 欧美在线国产| 欧美激情区在线播放| 亚洲欧美国产va在线影院| 久久黄色级2电影| 亚洲性夜色噜噜噜7777| 久久久免费精品视频| 亚洲一区国产| 麻豆久久婷婷| 久久精品成人欧美大片古装| 欧美国产日韩亚洲一区| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩p片| 欧美成人精品影院| 国产免费观看久久| 亚洲麻豆av| 亚洲国产一区在线观看| 欧美亚洲一区在线| 亚洲一区二区免费| 欧美久久电影| 亚洲大黄网站| 激情伊人五月天久久综合| 一区二区三区毛片| 99精品视频一区| 欧美成人激情视频免费观看| 久久久亚洲人| 国产日韩一区二区三区在线播放| 日韩亚洲综合在线| 99成人精品| 欧美黑人在线观看| 亚洲第一精品夜夜躁人人躁| 国产在线精品自拍| 欧美一级视频| 欧美影院久久久| 国产免费一区二区三区香蕉精| 亚洲欧洲日韩在线| 亚洲三级视频在线观看| 久色成人在线| 欧美国产日韩一区二区三区| 精久久久久久久久久久| 欧美一区二区三区四区在线| 午夜日韩视频| 国产欧美精品日韩| 亚洲在线观看视频网站| 午夜日韩电影| 国产综合久久久久久鬼色| 欧美一区二区精美| 久久国产日韩| 伊人久久婷婷| 麻豆精品视频在线| 91久久久久久久久| 日韩天堂在线视频| 欧美日本国产视频| 亚洲特级毛片| 久久久www成人免费毛片麻豆| 国产一区二区高清视频| 久久精品国产综合| 欧美大片91| 一本久道久久综合狠狠爱| 欧美视频在线观看免费| 亚洲夫妻自拍| 欧美一区二区三区在线播放| 亚洲砖区区免费| 国产日韩欧美综合精品| 久久九九国产精品| 欧美韩日一区| 亚洲欧美国产另类| 黄色一区三区| 欧美久久久久久蜜桃| 正在播放亚洲一区| 久久免费视频一区| 亚洲视频在线观看网站| 国产亚洲欧美日韩在线一区| 裸体一区二区| 99pao成人国产永久免费视频| 欧美日韩小视频| 香蕉成人久久| 亚洲国产成人一区| 欧美一区二区三区四区视频| 亚洲第一精品夜夜躁人人爽| 欧美视频网址| 久久综合久久综合九色| 一区二区三区四区精品| 欧美插天视频在线播放| 亚洲欧美视频| 亚洲精品一区二区三区四区高清| 国产精品三上| 欧美久久久久久久久久| 久久亚洲色图| 性欧美在线看片a免费观看| 亚洲精品美女在线观看| 久久综合九色九九| 午夜亚洲性色视频| 一区二区三区视频免费在线观看| 国产欧美日韩综合精品二区| 欧美精品日韩三级| 久久九九有精品国产23| 亚洲免费伊人电影在线观看av| 亚洲国产成人精品久久| 久久青青草综合| 欧美一级理论性理论a| 一区二区三区久久久| 亚洲日韩中文字幕在线播放| 亚洲第一精品夜夜躁人人躁| 国内久久精品| 国产日韩1区|