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



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中文字幕一区二区| 另类人畜视频在线| 亚洲精品欧美日韩专区| 老司机亚洲精品| 在线不卡a资源高清| 久久视频一区二区| 91久久精品国产| 午夜精品偷拍| 黄色成人在线| 欧美激情精品| 欧美专区中文字幕| 亚洲黄网站黄| 欧美亚洲三区| 亚洲激情网站| 国产日韩欧美不卡| 欧美精品一区二区三区很污很色的 | 麻豆精品视频在线| 亚洲精品综合| 久久综合色天天久久综合图片| 亚洲啪啪91| 好吊色欧美一区二区三区四区| 欧美aaaaaaaa牛牛影院| 午夜国产一区| 亚洲在线国产日韩欧美| 亚洲国内精品| 狼人天天伊人久久| 欧美在线电影| 欧美一级免费视频| 中文欧美日韩| 亚洲精选视频免费看| 亚洲动漫精品| 国产一区二区三区在线免费观看| 欧美精品久久99| 久久综合一区| 久久―日本道色综合久久| 香蕉免费一区二区三区在线观看 | 看片网站欧美日韩| 亚洲精品123区| 久久精品亚洲国产奇米99| 欧美影视一区| 欧美精品一区二区高清在线观看| 亚洲美洲欧洲综合国产一区| 欧美aa在线视频| 久久综合综合久久综合| 欧美在线二区| 久久躁狠狠躁夜夜爽| 久久婷婷色综合| 欧美国产亚洲精品久久久8v| 伊人久久婷婷色综合98网| 国产精品老女人精品视频| 国产精品美女一区二区在线观看| 欧美日韩亚洲高清| 国产一区999| 在线不卡中文字幕播放| 亚洲精品综合久久中文字幕| 亚洲欧美美女| 欧美国产亚洲另类动漫| 亚洲人午夜精品免费| 亚洲欧美日韩一区二区| 久久精品国产亚洲5555| 欧美精品激情在线观看| 国产欧美日韩亚州综合| 在线不卡中文字幕| 欧美综合激情网| 亚洲高清一二三区| 午夜精品www| 欧美视频日韩| 亚洲精品免费在线| 免费观看在线综合色| 99ri日韩精品视频| 欧美在线免费观看视频| 国产精品成人播放| 亚洲天堂av电影| 亚洲风情在线资源站| 久久久久久久久久久久久女国产乱 | 欧美电影电视剧在线观看| 亚洲天堂av在线免费| 久久一区二区三区国产精品| 国产午夜一区二区三区| 午夜精品一区二区在线观看| 亚洲人在线视频| 猫咪成人在线观看| 亚洲国产高清aⅴ视频| 玖玖国产精品视频| 久久漫画官网| 亚洲黄色成人久久久| 欧美激情在线狂野欧美精品| 老司机一区二区| 最新国产成人在线观看| 亚洲欧洲一二三| 欧美精品免费视频| 亚洲综合日韩中文字幕v在线| 亚洲一区二区高清视频| 国产丝袜一区二区| 欧美福利视频在线观看| 欧美 日韩 国产 一区| 日韩视频免费观看| 亚洲自拍啪啪| 狠狠色狠狠色综合系列| 91久久精品日日躁夜夜躁欧美| 欧美伦理在线观看| 欧美主播一区二区三区| 久久亚洲精品网站| 亚洲视频在线观看免费| 欧美寡妇偷汉性猛交| 欧美成人精品1314www| 久久久综合香蕉尹人综合网| 艳妇臀荡乳欲伦亚洲一区| 性刺激综合网| 99国产精品视频免费观看| 午夜日韩av| 亚洲一区二区在线播放| 久久久久久久久蜜桃| 欧美一区二区三区男人的天堂| 久久影院午夜片一区| 欧美伊人精品成人久久综合97 | 国产精品永久免费| 国产精品日韩一区| 亚洲精品乱码久久久久久| 国内精品久久久久久久果冻传媒| 欧美成人国产va精品日本一级| 国产视频一区二区在线观看| 欧美电影在线播放| 亚洲第一黄色网| 欧美一区二区视频免费观看| 午夜精品在线| 国产毛片精品视频| 欧美亚洲一区二区三区| 久久成人羞羞网站| 国产一区香蕉久久| 久久精品国产清高在天天线| 美国十次成人| 91久久黄色| 欧美日韩亚洲系列| 亚洲视频导航| 久久人人爽爽爽人久久久| 激情亚洲网站| 欧美乱大交xxxxx| 亚洲深夜激情| 欧美jjzz| 亚洲一区二区三区四区在线观看 | 欧美在线观看一二区| 国产女人水真多18毛片18精品视频| 亚洲欧美一区二区视频| 久久视频一区| 中文高清一区| 韩日视频一区| 欧美小视频在线| 欧美在线免费看| 亚洲精品字幕| 久久一区国产| 午夜精品久久久久久99热| 在线欧美一区| 国产欧美91| 欧美视频日韩视频在线观看| 欧美一区二区三区四区夜夜大片| 欧美激情精品久久久久久久变态 | 亚洲三级影院| 久久精品视频免费| 欧美精选午夜久久久乱码6080| 亚洲午夜在线观看视频在线| 欧美黄色视屏| 久久夜色精品国产亚洲aⅴ| 日韩视频免费在线| 红桃视频成人| 久热精品视频在线观看| 午夜免费电影一区在线观看| 亚洲精品婷婷| 亚洲激情女人| 欧美电影免费观看网站| 久久久欧美一区二区| 性一交一乱一区二区洋洋av| 一区二区三区国产盗摄| 一本一本久久| 日韩视频国产视频| 正在播放欧美一区| 亚洲欧洲日产国码二区| 欧美成人精品在线观看| 欧美成人嫩草网站| 亚洲制服av| 欧美亚洲三级| 久久米奇亚洲| 欧美gay视频激情| 欧美激情一区二区三区成人| 亚洲二区视频在线| 一区二区三区四区五区视频| 日韩亚洲欧美一区| 亚洲一级黄色片| 久久久之久亚州精品露出| 蜜臀va亚洲va欧美va天堂| 欧美日韩国产免费| 国产亚洲欧美一区二区|