倒计时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;
}

待续,,,

相关推荐
爱跑步的一个人1 小时前
STL-常用排序算法
开发语言·c++·排序算法
星光樱梦1 小时前
24. 正则表达式
c++
fathing1 小时前
c# 调用c++ 的dll 出现找不到函数入口点
开发语言·c++·c#
hope_wisdom2 小时前
C++网络编程之SSL/TLS加密通信
网络·c++·ssl·tls·加密通信
erxij2 小时前
【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看
c++·经验分享·游戏·3d·游戏引擎
林开落L3 小时前
前缀和算法习题篇(上)
c++·算法·leetcode
Prejudices3 小时前
C++如何调用Python脚本
开发语言·c++·python
单音GG3 小时前
推荐一个基于协程的C++(lua)游戏服务器
服务器·c++·游戏·lua
qing_0406033 小时前
C++——多态
开发语言·c++·多态
孙同学_3 小时前
【C++】—掌握STL vector 类:“Vector简介:动态数组的高效应用”
开发语言·c++