UCE-group / fortnightly-plan

北京化工大学 BUCT-UCE 社团: 编程学习 - 周计划WP,双周计划FP,月计划MP
35 stars 12 forks source link

【FP】2018秋季-第9-10周-苏一玮 #111

Open 2017020182 opened 5 years ago

2017020182 commented 5 years ago

//被社长压榨(划掉)后开始写的第一篇FP //完全不知道怎么写就随便涂一点吧

前段时间的总结:

高材的课很忙啦,几乎天天都是塞满,所以之前有很多活动只参加了一半或者根本就没有参加,在此向各位道个歉啦。 社长要让我带python爬虫组呢,然而我也是个菜鸡,很久没碰py了,希望能和各位一起成长吧。 想参加数学建模,想打ACM,想……各种事情都想,然后都没时间做。。。。 (其实是人懒)

最近做的唯一一件事情大概就是稍微看了一下下深度优先搜索算法的一道洛谷题目吧,然而很菜,看了大佬的程序才编了出来,但好歹也是理解了。

题目是洛谷的八皇后问题,对大佬们来说很简单,希望用这个糊FP不会被秀一脸。 题目网址:https://www.luogu.org/problemnew/show/P1219 大概就是在n*n的棋盘上一共放置n个棋子,要求每行每列和每条对角线上都只能有一个棋子,输出所有解

参考洛谷大佬的代码如下: (很惭愧,本人除了注释以外思路基本是全抄的,本人是新手,以理解大佬思路为主吧) 各路大佬代码:https://www.luogu.org/problemnew/solution/P1219 //感谢DIYer22大佬提供如何插入代码的方法,第一次用github有点不熟

#include <stdio.h>
using namespace std;

int n=0;//n*n的棋盘
int a[1000]={0},b[1000]={0},c[1000]={0},d[1000]={0};//a为行,b为列,c为右斜对角线,d为左斜对角线 
int count=0;//计算一共有几个解 
void print()
{
        count++;
    if(count<=3)
    {
        for(int i=1;i<=n;i++)
        {
            printf("%d ",a[i]);
        }
        printf("\n");
    }
} 

int dfs(int i)
{
    for(int j=1;j<=n;j++)
    {
        if(b[j]==0 && c[i+j]==0 && d[i-j+n]==0)//判断当前格子是否可以放棋子 
        {
            a[i]=j;//在第i行的第j列放下棋子
            b[j]=1;//标记第j列
            c[i+j]=1;//右斜对角线有性质为:i+j为一定值,由此标记
            d[i-j+n]=1;//左斜对角线有性质为:i-j为一定值,为防止下标出现负值加了个n
            if(i==n) print();//如果已经到最后一行了说明做完了 
            else dfs(i+1);//没做完就去找下一行
            b[j]=0;c[i+j]=0;d[i-j+n]=0;//回溯 
        }
    }
}

int main()
{
    scanf("%d",&n);
    dfs(1);
    printf("%d",count);
    return 0;
}

fortnightly-plan:

计划很简单啦,再编完下一道洛谷的深搜题“单词接龙”:https://www.luogu.org/problemnew/show/P1019

(毕竟我还有3份实验报告要抄)

DIYer22 commented 5 years ago

插入代码非常方便 搜索一下就有了

def code_insert(code):
    # write your code
    return code_in_md

P.S. 学弟是高材专业的?

2017020182 commented 5 years ago

插入代码非常方便 搜索一下就有了

def code_insert(code):
    # write your code
    return code_in_md

P.S. 学弟是高材专业的?

感谢提供插入代码的方法,下次用markdown编辑应该就好了。 另外,我确实是高材专业的。不过我是17级的,如果你是16级的话那可以叫我学弟啦。

DIYer22 commented 5 years ago

我是14级的, 你刚才用的是引用 不是代码, 我改成代码了

学弟 是打算继续再高材专业深造吗?

JayeIvan commented 5 years ago

学弟打算在高材追逐梦想╮(‵▽′)╭