倒计时57天

3-1知识点续:

cpp 复制代码
//给string设置大小:
/*
1.s.resize(N):

resize()函数可以改变string的大小,并根据需要添加或删除字符。如果新的大小比当前大小大,将会在末尾添加字符;如果新的大小比当前大小小,将会删除末尾的字符。
*/

//例子:
void solve() {
	string s = "abcdef";
	s.resize(5);
	cout << s << endl;//输出abcde
}

/*
2.s.reserve(N):
但使用reserve()函数只是预留了存储空间,并不会改变实际的字符数量。
*/


//例子:
void solve() {
	string s = "abcdef";
	s.reserve(5);
	cout << s << endl;//输出abcdef
}
cpp 复制代码
//将string转化为long long型
void solve() {
	string s = "123";
	int a = strtoll(s.c_str(), NULL, 10);
	cout << a / 10;
}

复习3-2:习题篇:

倒计时68天-CSDN博客

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+6;
const int inf=0x3f3f3f3f;
typedef pair<int,int> pii;
vector<pii>ve[N];
int dis[N];
void dfs(int x,int fa)
{
  for(auto [u,w]:ve[x])
  {
    if(u==fa)continue;
    dis[u]=dis[x]+w;
    dfs(u,x);
  }
}
void solve()
{
	int n,cn=0;
  cin>>n;
  for(int i=1;i<n;i++)
  {
    int u,v,w;
    cin>>u>>v>>w;
    ve[u].push_back({v,w});
    ve[v].push_back({u,w});
    cn+=2*w;
  }
  dfs(1,0);
  int max1=-inf,flag;
  for(int i=1;i<=n;i++)
  {
    if(max1<dis[i])
    {
      max1=dis[i];
      flag=i;
    }
  }
  memset(dis,0,sizeof dis);
  dfs(flag,0);
  max1=-inf;
  for(int i=1;i<=n;i++)
  {
    max1=max(max1,dis[i]);
  }
  cout<<cn-max1;
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr),cout.tie(nullptr);
	int t;
	//cin>>t;
	t=1;
	while(t--)
	{
		solve();
	}
  return 0;
}
cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+6;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
vector<int>ve[N];
int dp[N][2];
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);
	int t;
	//cin>>t;
	t=1;
	while(t--)
	{
		solve();
	}
  return 0;
}

待续,,,

相关推荐
王老师青少年编程6 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮6 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
样例过了就是过了8 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
谭欣辰8 小时前
C++ 排列组合完整指南
开发语言·c++·算法
橙子也要努力变强9 小时前
信号捕捉底层机制-机理篇2
linux·服务器·c++
盐焗鹌鹑蛋9 小时前
【C++】stack和queue类
c++
郝学胜-神的一滴10 小时前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal
lzh2004091910 小时前
深入理解进程:从PCB内核结构到写时拷贝的底层实战
linux·c++
aseity11 小时前
跨平台项目中QString 与 非Qt 跨平台动态库在字符集上的一个实用的互操作约定.
c++·经验分享
CN-Dust11 小时前
【C++】while语句例题专题
数据结构·c++·算法