3月22日

披星戴月的贾维斯
新星创作者: C/C++技术领域
2023-03-22 12:41:41

 

1、

 

#include <bits/stdc++.h>
using namespace std;
int st[102][102] = {0};
int a[102][102] = {0};
int n, m;
int t, k;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
void turn(int x, int y)
{
  for(int i = 0; i < 4; i++)
  {
    int ax = x + dx[i];
    int ay = y + dy[i];
    if(ax >= 1 && ax <= n && ay >= 1 && ay <= m && st[ax][ay] == 0)
    {
      st[ax][ay] = 1;
      a[ax][ay] = 1;
    }
  }
}
int main()
{
  int res = 0;
  cin >> n >> m;
  cin >> t;
  while(t --)
  {
    int x, y;
    cin >> x >> y;
    st[x][y] = 1;
  }
  cin >> k;
  while(k --)
  {
    for(int i = 1; i <= 100; i++)
      for(int j = 1; j <= 100; j++)
      {
        if(st[i][j] == 1 && a[i][j] != 1)
        {
          turn(i, j);
          a[i][j] = 0;
        }
      }
  }
  for(int i = 1; i <= 100; i++)
      for(int j = 1; j <= 100; j++)
      {
        if(st[i][j])
        {
          res++;
        }
      }
  cout << res << endl;
  return 0;
}

2、

#include <iostream>
using namespace std;

int arr[10001];
int n, big = 0;

void dfs(int x, int index, int cnt) {
    if (cnt > n) return;
    if (x == index) {
        big = big > cnt ? big : cnt;
        return;
    }
    dfs(arr[x], index, cnt + 1);

}

int main() {
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> arr[i];
    }
    for (int i = 1; i <= n; ++i) {
        dfs(arr[i], i, 1);
    }
    cout << big << endl;

    return 0;
}

 3、

 

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 5050;
int f[N][N];
const int mod = 1000000007l;
string s;
int n;
LL solve()
{
  memset(f, 0, sizeof f);
  f[0][0] = 1;
  for(int i = 1; i <= n; i++)
  {
    if(s[i - 1] == '(')
    {
      for(int j = 1; j <= n; j++)
      f[i][j] = f[i - 1][j - 1];
    }
    else
    {
      f[i][0]=(f[i-1][1]+f[i-1][0])%mod;
      for(int j=1;j<=n;j++)
        f[i][j]=(f[i-1][j+1]+f[i][j-1])%mod;
    }
  }
  for(int i=0;i<=n;i++)
        if(f[n][i])
            return f[n][i];
    return -1;
}
int main()
{
  cin >> s;
  n = s.size();
  LL x = solve();
  reverse(s.begin(),s.end());
  for(int i=0;i<n;i++){
        if(s[i]==')')
            s[i]='(';
        else
            s[i]=')';
    }
    LL y=solve();
    cout<<(x*y)%mod;
  return 0;
}

 

...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,680

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧