头像

SQ_0

xixi




离线:23小时前


新鲜事 原文

SQ_0
2天前
我真的好想去北京


活动打卡代码 AcWing 1113. 红与黑

SQ_0
3天前
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int dir[][2] = {{0,1},{0,-1},{1,0},{-1,0}};
int n,m;
const int N = 21;
char path[N][N];
bool st[N][N];

int dfs(int x,int y)
{
    int ans = 1;
    path[x][y] = '#';
    for(int i = 0; i < 4; i ++)
    {
        int nx = x + dir[i][0];
        int ny = y + dir[i][1];
        if(nx >= 0 && nx < n && ny >= 0 && ny < m && path[nx][ny] == '.')
        {
            ans += dfs(nx,ny);
        }
    }
    return ans;

}
int main()
{

    while(cin >> m >> n, n || m)
    {
        for(int i = 0; i < n; i ++) cin >> path[i];
        int dx,dy;
        for(int i = 0; i < n; i ++)
            for(int j = 0; j < m; j ++)
                if(path[i][j] =='@')
                    dx = i,dy = j;
        printf("%d\n",dfs(dx,dy));
    }

    return 0;
}


活动打卡代码 AcWing 843. n-皇后问题

SQ_0
7天前

2021年4月8日08:51:08

#include <bits/stdc++.h>

using namespace std;

int n;
const int N = 20;
// path 表示存放的路径
char g[N][N];
// col 表示列已用
// dg  表示对角线已用
// udg 表示反对角线已用
bool col[N],dg[N],udg[N];

void dfs(int u)
{
    if(u == n)
    {
        for(int i = 0; i < n; i ++) puts(g[i]);
        puts("");
        return;
    }

    for(int i = 0; i < n; i ++) // 对每一行进行操作
    {
        if(!col[i] && !dg[u + i] && !udg[n - u + i])
        {
            g[u][i] = 'Q';
            col[i] = dg[u + i] = udg[n -u + i] = true;

            dfs(u+1);

            col[i] = dg[u+i] = udg[n-u+i] = false;
            g[u][i] = '.';
        }
    }


}
int main()
{
    cin >> n;
    for(int i = 0; i < n; i ++ )
        for(int j = 0; j < n; j ++ )
            g[i][j] = '.';
    dfs(0);

    return 0;
}


活动打卡代码 AcWing 842. 排列数字

SQ_0
7天前

2021年4月8日08:35:58

#include <bits/stdc++.h>

using namespace std;
const int N = 10;
int n;
// st1 及 statue1 表示这一位的状态
bool st1[N];
// 数组a存放数字
int a[N];
void dfs(int u)
{
    if(u == n)
    {
        for(int i = 0; i < n; i ++ )
            printf("%d ",a[i]);
        puts("");
        return;
    }
    for(int i = 1; i <= n ; i ++)// 这里的for可以理解为 对每一位可以用的开头的数
    {
        if(!st1[i]) // 找可以使用的数
        {
            a[u] = i;      // 将这个数存下来
            st1[i] = true; // 既然通过了if则这个数用过要标记一下
            dfs(u+1);      // 开始找下一位
            st1[i] = false;// 找到最后,恢复现场  
        }
    }
}
int main()
{
    scanf("%d",&n);
    dfs(0);
    return 0;
}


活动打卡代码 AcWing 2065. 整除序列

SQ_0
13天前
#include <cstdio>
using namespace std;
long long n;  //数据是10^18,不开long long 见祖宗

int main() {
    scanf("%lld", &n);
    while(n > 0) {
        printf("%lld ", n);
        n = n >> 1;    //右移比直接除快点
    }
    return 0;
} 


活动打卡代码 AcWing 2067. 走方格

SQ_0
13天前
#include <bits/stdc++.h>
using namespace std;
const int N = 35;
int a[N][N];
int main()
{
    int n,m;
    cin >> n >> m;
    a[1][1] = 1;
    for(int i = 1; i <= n; i ++)
        for(int j = 1; j <= m; j ++)
            if(i%2 != 0 || j%2 != 0)
                a[i][j] += a[i-1][j] + a[i][j-1];

    printf("%d",a[n][m]);



    return 0;
}


活动打卡代码 AcWing 2066. 解码

SQ_0
13天前
#include <bits/stdc++.h>

using namespace std;

int main()
{
//  printf("%d %d",'1','9'); 
    string a;
    cin >> a;
    for(int i = 0; i < a.size(); i ++)
    {
        if(a[i] >= 'A' && a[i] <= 'z')
            cout << a[i];
        if(a[i] >= 49 && a[i] <= 57)
        {
//          cout << a[i] << endl;
            int tmp = a[i]-'0';
//          cout << tmp;
            for(int j = 0; j < tmp-1; j ++)
                cout << a[i-1];
        }        
    }

    return 0;
}



SQ_0
18天前
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* findKthToTail(ListNode* head, int k) {
        int n = 0;
        for(auto p = head;p; p = p->next)n++;
        if(n<k) return nullptr;
        auto p = head;
        for(int i = 0; i <n-k;i ++ ) p = p->next;
            return p;
    }
};



SQ_0
19天前
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        auto dummy = new ListNode(-1);
        dummy->next = head;
        auto p = dummy;
        while(p->next){
            auto q = p->next;
            while(q && q->val == p->next->val) q = q->next;
            if(q == p->next->next) p = p->next;
            else p->next = q;
        }
        return dummy->next;
    }
};


活动打卡代码 AcWing 1246. 等差数列

SQ_0
23天前

最大公因数

#include <bits/stdc++.h>

using namespace std;
const int N = 1e5;
int a[N];
int n;

int gcd(int a,int b)
{
    if(b == 0) return a;
    return gcd(b,a%b);
}

int lcm(int a,int b)
{
    return a*b/gcd(a,b);
}
int main()
{

    cin >> n;
    for(int i = 0; i < n; i ++ )
        cin >> a[i];

    sort(a,a+n);
    int t = a[1] - a[0];
    for(int i = 0; i < n; i ++ )
    {
        t = gcd(t,a[i]-a[0]);
    }

    if(!t) {
        printf("%d",n);
        return 0;
    }
    else printf("%d",(a[n-1]-a[0])/t+1);


    return 0;
}