倒计时68天

题单详情 - 蓝桥云课 (lanqiao.cn)

2.2.串门 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
typedef pair<int,int> pii;
vector<pii>ve[N];
int dis[N];//记录以i为起点走的步数
void dfs(int u,int fa)
{
  for(auto[v,w]:ve[u])
  {
    if(v==fa)continue;
    dis[v]=dis[u]+w;
    dfs(v,u);
  }
}
void solve()
{
	int n,cn=0;
  cin>>n;
  for(int i=1;i<n;i++)
  {
    int v,u,w;
    cin>>v>>u>>w;
    cn+=2*w;
    ve[v].push_back({u,w});
    ve[u].push_back({v,w});
  }
  dfs(1,0);
  //找最边缘的任一个点,用flag表示
  int mx=-inf,flag=1;
  for(int i=2;i<=n;i++)
  {
    if(dis[i]>mx)
    {
      mx=dis[i];
      flag=i;
    }
  }
  memset(dis,0,sizeof dis);
  dfs(flag,0);
  mx=-inf;
  for(int i=1;i<=n;i++)
  {
    mx=max(mx,dis[i]);
  }
  cout<<cn-mx;
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr),cout.tie(nullptr);
	solve();
	return 0;
}

想到了之前做的一题,好像,,,,,都是树的遍历

E-小红树上染色_牛客周赛 Round 30 (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
vector<int>ve[N];
int mod=1e9+7;
int dp[N][2];
//dp[i][0]:i号节点不染红时,i号结点的子树方案数;
//dp[i][1]:i号结点染红时,i号结点的子树方案数。
void dfs(int x,int fa)
{
    dp[x][0]=1,dp[x][1]=1;
    for(auto i:ve[x])
    {
        if(i==fa)continue;
        dfs(i,x);
//不染红,孩子一定染红,这时候父亲不染红时的方案数即为:目前父亲的方案数乘这个孩子的方案数
        dp[x][0]=dp[x][0]*dp[i][1]%mod;
//染红,孩子可染可不染,就是此时父亲的方案数乘(如果染的方案数加上如果不染的方案数)
        dp[x][1]=dp[x][1]*(dp[i][0]+dp[i][1])%mod;
    }
}
void solve()
{
	int n;
    cin>>n;
    for(int i=1;i<n;i++)
    {
        int u,v;
        cin>>u>>v;
        ve[u].push_back(v);
        ve[v].push_back(u);
    }
    dfs(1,0);
    cout<<(dp[1][0]+dp[1][1])%mod;
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr),cout.tie(nullptr);
	solve();
	return 0;
}

3.3.迷宫逃脱【算法赛】 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 3e4 + 5;
const int inf = 0x3f3f3f3f;
int w[1100][1100];
int aa[1100][1100][4];
int n, m;

int dfs(int i, int j, int q) {
	if (i == n + 1 || j == m + 1 || q == -1)
		return INT64_MIN;//走到墙外面或钥匙用超了
	if (i == n && j == m)
		return w[i][j];
	if (aa[i][j][q])
		return aa[i][j][q];
	int ma = 0;
	if (__gcd(w[i][j], w[i][j + 1]) == 1)
		ma = 1;
	int a = dfs(i, j + 1, q - ma);
	int mb = 0;
	if (__gcd(w[i][j], w[i + 1][j]) == 1)
		mb = 1;
	int b = dfs(i + 1, j, q - mb);
	int cn = w[i][j] + max(a, b);
	aa[i][j][q] = cn;
	return cn;
}

void solve() {
	int q;
	cin >> n >> m >> q;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> w[i][j];
		}
	}
	int ans = dfs(1, 1, q);
	ans = ans <= 0 ? -1 : ans;
	cout << ans;
}

signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr), cout.tie(nullptr);
	solve();
	return 0;
}

4.5.数组分割 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
int counting(int a,int b)
{
  int result=1;
  while(b)
  {
    if(b&1)
    {
      result=(result*a)%mod;
      b/=2;
      a=(a*a)%mod;
    }
    else
    {
      b/=2;
      a=(a*a)%mod;
    }
  }
  return result;
}
void solve()
{
	int t;
  cin>>t;
  while(t--)
  {
    int n,a,odd=0,even=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
      cin>>a;
      if(a&1)odd++;//奇数
      else even++;//偶数
    }
    if(odd&1)cout<<0<<endl;
    else
    {
      int sum1=counting(2,odd-1);
      if(odd==0)sum1=1;
      int sum2=counting(2,even);
      cout<<(sum1*sum2)%mod<<endl;
    }
  }
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr),cout.tie(nullptr);
	solve();
	return 0;
}

相关推荐

  1. 计时68

    2024-02-01 08:58:04       41 阅读
  2. 计时68

    2024-02-01 08:58:04       44 阅读
  3. 计时67

    2024-02-01 08:58:04       34 阅读
  4. 计时65

    2024-02-01 08:58:04       27 阅读
  5. 计时64

    2024-02-01 08:58:04       36 阅读
  6. 计时80

    2024-02-01 08:58:04       33 阅读
  7. 计时57

    2024-02-01 08:58:04       37 阅读
  8. 计时56

    2024-02-01 08:58:04       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 08:58:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 08:58:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 08:58:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 08:58:04       20 阅读

热门阅读

  1. Django如何调用机器学习模型进行预测

    2024-02-01 08:58:04       29 阅读
  2. linux系统ansible工具中的剧本playbook基础内容

    2024-02-01 08:58:04       29 阅读
  3. vim 编辑器 查找和替换文本 命令

    2024-02-01 08:58:04       32 阅读
  4. 5种改进生产 Web 应用服务器设置的方法

    2024-02-01 08:58:04       32 阅读
  5. 如何让Go程序以后台进程或daemon方式运行

    2024-02-01 08:58:04       40 阅读
  6. Python Django

    2024-02-01 08:58:04       31 阅读
  7. GO EASY 框架 之 Server 06

    2024-02-01 08:58:04       25 阅读
  8. LeetCode 第22天

    2024-02-01 08:58:04       39 阅读