faryou的博客 - 日记

faryou的博客 - 日记

用心记录生活点滴~~

昨天和今天进行了月考,前面有几天没有更新了,因为在复习。。。
个人认为之前国庆对英语的纠错还是有必要的,其他嘛,都是正常发挥,得加油了,争取期中考试拿个理想的名次


现在我真的感觉信奥和竞赛双重压力着实是吃不消了,打算比完赛就放了信奥
以后准备转C工程了,学了C++再看C语言,轻松拿捏~最近搞了个C语言的库(Github开源地址),准备长期更新了
远期还希望学习PHP,写个网页

今天还打了个模拟赛~题目偷出来了,给大家看看(下载链接),新鲜着


今天早上睡到了九点,然后纠错、复习了一整天。。。
写了几张社会思品的卷子
真的不想放假aaa
10.9月考了


今天晚上终于把作业写完了。。。赶紧发个文记录一下
其实杭州的秋假早就开始了,但是感觉放了和没放没什么区别,还要准备CSP-J复赛……累心


题目:https://www.luogu.com.cn/problem/P1189
代码:

#include<stdio.h>
int r,c,n,a,b,iq[1010];
char Map[55][55],input[6];
bool ans[55][55],flag[55][55][1010];
void dfs(int num,int x,int y){
    if(flag[x][y][num]) return ;
    if(num>=n){
        ans[x][y]=true;
        return ;
    }
    int i=x,j=y;
    if(iq[num]==1) while(1){
        j++;
        if(j>=c || Map[x][j]=='X') break;
        dfs(num+1,x,j);
    }
    if(iq[num]==2) while(1){
        i++;
        if(i>=r || Map[i][y]=='X') break;
        dfs(num+1,i,y);
    }
    if(iq[num]==3) while(1){
        j--;
        if(j<0 || Map[x][j]=='X') break;
        dfs(num+1,x,j);
    }
    if(iq[num]==4) while(1){
        i--;
        if(i<0 || Map[i][y]=='X') break;
        dfs(num+1,i,y);
    }
    flag[x][y][num]=true;
    return ;
}
int main(){
    scanf("%d%d",&r,&c);
    for(int i=0;i<r;i++) for(int j=0;j<c;j++) ans[i][j]=false; 
    for(int i=0;i<r;i++) scanf("%s",Map[i]);
    for(int i=0;i<r;i++) for(int j=0;j<c;j++) if(Map[i][j]=='*'){
        a=i;
        b=j;
    }
    scanf("%d",&n);
    for(int i=0;i<r;i++) for(int j=0;j<c;j++) for(int k=0;k<n;k++) flag[i][j][k]=false;
    for(int i=0;i<n;i++){
        scanf("%s",input);
        if(input[0]=='E') iq[i]=1;
        if(input[0]=='S') iq[i]=2;
        if(input[0]=='W') iq[i]=3;
        if(input[0]=='N') iq[i]=4;
    }
    dfs(0,a,b);
    for(int i=0;i<r;i++){
        for(int j=0;j<c;j++){
            if(Map[i][j]=='X') printf("X");
            else if(ans[i][j]) printf("*");
            else printf(".");
        }
        printf("\n");
    }
    return 0;
}

开心一整天~