前言
这几天要毕业考,Gesp6级,还有初中分班考,所以这可能是7月前最后一个帖子,不过暑假大概率还是会更的(除非回老家玩,但8月还是要回来集训的)
树的概念
例:
图的概念
其实说白了就是树的阉割版本
难度其实并不大,但考试遇到就像上国道遇到大运一样。
加上后来……
最短路
dfs/bfs
树状DP
树上二分
…………
考试遇到直接坠机(其实没那么夸张)
有人问了,怎么储存?
又有人问了,怎么Dfs,Bfs?
(伪)代码不给多了 交给老师的PPT了,欸沃屮,找不到了
void dfs(xx)
{
for(现在位置一步就可以到达的点)
{
if(没走过)
{
走
}
}
}
void bfs(xx)
{
queue<int> a;
a.push(起点);
bool vis[100001] = {false};
vis[起点] = true;
while(有点可以走)
{
int y = a.front();//取下可以到达的点
a.pop();
for(下一步可以到达的点)
{
if(没走过)
{
走
}
}
}
}
最后
各位可以帮我圆个基础梦吗?(自己懒得补)
WA20
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,u,v,maxn,q;
vector<int> g[1000001];
cin>>n>>m;
for(int i = 1;i <= m;i++)
{
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
for(int i = 1;i <= n;i++)
{
if(g[i].size() != 2)
{
q++;
}
if(g[i].size() == n-1)
{
cout<<"Flower";
}
}
if(q == 0)
{
cout<<"Ring";
}
else if(q == 2)
{
cout<<"Chain";
}
else
{
cout<<"Neither";
}
return 0;
}