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

待续,,,

相关推荐
唐诺3 分钟前
几种广泛使用的 C++ 编译器
c++·编译器
冷眼看人间恩怨1 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
红龙创客1 小时前
某狐畅游24校招-C++开发岗笔试(单选题)
开发语言·c++
Lenyiin1 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
yuanbenshidiaos3 小时前
c++---------数据类型
java·jvm·c++
十年一梦实验室3 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵
taoyong0013 小时前
代码随想录算法训练营第十一天-239.滑动窗口最大值
c++·算法
这是我583 小时前
C++打小怪游戏
c++·其他·游戏·visual studio·小怪·大型·怪物
fpcc4 小时前
跟我学c++中级篇——C++中的缓存利用
c++·缓存
呆萌很4 小时前
C++ 集合 list 使用
c++