day01笔记
2026-08-02 20:30:37
发布于:广东
笔记:
斐波那契数列
ll f(ll n){
if(n==1 || n==2) return 1;
return f(n-1) + f(n-2);
}
质数判断
bool is_prime(ll n){
if(n<2) return false;
for(ll i = 2; i *i <= n ; i++){
if(n%i==0) return false;
}return true;
}
抽奖
ll a[10]; // a[i] 代表 第i层我选的数字是什么
void dfs(ll idx){ //代表深度
if(idx == m+1){
for(ll i = 1; i <= m ; i++){
cout<<a[i]<<" ";
}cout<<'\n';
return ;
}
for(ll i = 1; i <= 3 ; i++){
a[idx] = i;
dfs(idx+1);
}
}
全排列
void dfs(ll idx){ //代表深度
if(idx == n+1){
for(ll i = 1; i <= n ; i++){
cout<<a[i]<<" ";
}cout<<'\n';
return ;
}
for(ll i = 1; i <= n ; i++){
if(!vis[i]){
a[idx] = i;
vis[i] = 1;
dfs(idx+1);
vis[i] = 0;
}
}
}
食堂管理员
void dfs(ll idx,ll sum){ //idx代表深度,代表和
if(idx == n+1){
if(sum%k==0){
for(ll i = 1; i <= n ; i++){
cout<<ans[i]<<" ";
}cout<<"\n";
}
return ;
}
for(ll i = 1; i <= a[idx] ; i++){
ans[idx] = i;
dfs(idx + 1, sum+i);
}
}
邻接表
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 2e5 + 5;
vector<ll> v[N]; //定义邻接表
int main() {
ll n;cin>>n;
for(ll i = 1; i <= n-1 ; i++){//存图
ll x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
for(ll i = 1; i <= n ; i++){ //对所有的vector进行排序
sort(v[i].begin(),v[i].end());
}
for(ll i = 1; i <= n ; i++){
cout<<v[i].size()<<" "; //第i个节点连接的点数有多少
for(ll j = 0; j < v[i].size() ; j++){//输出i点连接的点
cout<<v[i][j]<<" ";
}cout<<"\n";
}
return 0;
}
邻接表dfs
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 2e5 + 5;
ll n,m,ans;
vector<ll> v[N]; //定义邻接表
bool vis[N];
void dfs(ll x){
vis[x] = 1;
ans++;
for(ll i = 0; i < v[x].size() ; i++){
ll u = v[x][i];
if(!vis[u]){
dfs(u);
vis[u] = 1;
}
}
}
int main() {
cin>>n>>m;
for(ll i = 1; i <= m ; i++){//存图
ll x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
ll x,y;cin>>x>>y;
dfs(x);
if(vis[y]) cout<<ans;
else cout<<0;
return 0;
}
第三题 核心代码
for(ll i = 2; i <= n ; i++){
string str;
cin>>str;
if(str[0]==ans.back()){ //拿到尾部
ans.pop_back(); //删除最后一个
ans += str;
}
}
第四题
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
char ma[110][110];
int main() {
ll n;
char ch;cin>>n>>ch;
for(ll i = 1; i <= 2*n-1 ; i++){
for(ll j = 1; j <= 2*n-1 ; j++){
ma[i][j] = '.';
}
}
ll x1=1,y1=n,x2=1,y2=n;
for(ll i = 1; i <= n ; i++){
ma[i][y1] = ch;
ma[i][y2] = ch;
y1--;y2++;
}
y1+=2,y2-=2;
for(ll i = n+1; i <= 2*n-1 ; i++){
ma[i][y1] = ch;
ma[i][y2] = ch;
y1++;y2--;
}
for(ll i = 1; i <= 2*n-1 ; i++){
for(ll j = 1; j <= 2*n-1 ; j++){
cout<<ma[i][j];
}cout<<'\n';
}
return 0;
}
第九题
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 2e5 + 5;
ll n,m,ans;
vector<ll> v[N]; //定义邻接表
ll sum;
bool vis[N];
void dfs(ll x){
vis[x] = 1;
sum++; //计算连通块的数量
for(ll i = 0; i < v[x].size() ; i++){
ll u = v[x][i];
if(!vis[u]){
dfs(u);
}
}
}
int main() {
cin>>n>>m;
for(ll i = 1; i <= m ; i++){//存图
ll x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
for(ll i = 1; i <= n ; i++){ //深搜计算连通块
if(vis[i]) continue;
sum = 0;
dfs(i);
ans = max(sum,ans);
}
cout<<ans;
return 0;
}
第十题
//深搜部分代码
void dfs(ll idx,ll sum){
if(idx == n+1) {
cout<<sum<<"\n";
return;
}
for(ll i = 0; i <= 9 ; i++){
if(is_prime(sum*10+i)){
dfs(idx+1,sum*10+i);
}
}
}
//李俊霆:优秀代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool p(int n) {
if (n<=1) return false;
for(int i=2;i*i<=n;i++){
if (n%i==0){
return false;
}
}
return true;
}
vector<int> v[18];
signed main(){
int n;
cin>>n;
v[1].push_back(2);
v[1].push_back(3);
v[1].push_back(5);
v[1].push_back(7);
for(int i=2;i<=n;i++){
for(int j=0;j<v[i-1].size();j++){
for(int k=1;k<=9;k++){
if(p(v[i-1][j]*10+k)) v[i].push_back(v[i-1][j]*10+k);
}
}
}
for(int i = 1; i <= n ; i++){
for(int j=0;j<v[i].size();j++){
cout<<v[i][j]<<" ";
}cout<<'\n';
}
return 0;
}
全部评论 10
1
2026-08-02 来自 广东
4偷看😁
2026-08-02 来自 广东
31
2026-08-02 来自 广东
2👍👍
2026-08-02 来自 广东
0/**
-
_ooOoo_ -
o8888888o -
88" . "88 -
(| -_- |) -
O\ = /O -
____/`---'\____ -
. ' \\| |// `. -
/ \\||| : |||// \ -
/ _||||| -:- |||||- \ -
| | \\\ - /// | | -
| \_| ''\---/'' | | -
\ .-\__ `-` ___/-. / -
___`. .' /--.--\ `. . __ -
."" '< `.___\_<|>_/___.' >'"". -
| | : `- \`.;`\ _ /`;.`/ - ` : | | -
\ \ `-. \_ __\ /__ _/ .-` / / -.____-._/.-`__.-'-
`=---=' -
拜佛处 - .............................................
-
佛祖保佑 永无BUG -
祝大家考试考好 天天向上
2026-08-02 来自 广东
0-
66666666666
2026-08-02 来自 广东
066
、
2026-08-02 来自 广东
0催更
2026-08-02 来自 广东
0老师这种人最精了
2026-08-02 来自 广东
01111
2026-08-02 来自 广东
0













































有帮助,赞一个