-
个人简介
You can you up,no can no bb.
全排列问题
#include<bits/stdc++.h> using namespace std; const int N=22; int n,m,a[N],st[N]; void solve(){ for(int i=1;i<=n;i++){ a[i]=i; } do{ for(int i=1;i<=n;i++){ cout<<setw(5)<<a[i]; } cout<<endl; }while(next_permutation(a+1,a+n+1)); } int main() { cin>>n; solve(); return 0; }
#include<bits/stdc++.h> using namespace std; const int N=22; int n,m,a[N],st[N]; void dfs(int u){ if(u>n){ for(int i=1;i<=n;i++){ cout<<setw(5)<<a[i]; } cout<<endl; return; } for(int i=1;i<=n;i++){ if(!st[i]){ st[i]=1,a[u]=i,dfs(u+1); st[i]=0; } } } int main() { cin>>n; dfs(1); return 0; }
二叉树
先序
void pre(int u){ if(u==0) return; cout<<tr[u].c; pre(tr[u].l); pre(tr[u].r); }
中序
void in(int u){ if(u==0) return; in(tr[u].l); cout<<tr[u].c; in(tr[u].r); }
后序
void post(int u){ if(u==0) return; post(tr[u].l); post(tr[u].r); cout<<tr[u].c; }
根据前序中序求后序
#include<bits/stdc++.h> using namespace std; //substr(i,k) 截取下标从i开始连续k个元素 //substr(i) 截取下标i开始后面所有元素 //substr(i,N) 截取下标从i开始后面所有条件 void dfs(string a,string b){ if(a.size()==0) return; char rt=a[0]; int k=b.find(rt); dfs(a.substr(1,k),b.substr(0,k)); dfs(a.substr(1+k),b.substr(k+1)); cout<<rt; } int main(){ string a,b,c; cin>>a>>b; dfs(a,b); return 0; }
根据中序后序求先序
#include<bits/stdc++.h> using namespace std; void dfs(string b,string c){ if(b.size()==0) return; char rt=c.back(); int k=b.find(rt); cout<<rt; dfs(b.substr(0,k),c.substr(0,k)); dfs(b.substr(1+k),c.substr(k,c.size()-k-1)); } int main(){ string b,c; cin>>b>>c; dfs(b,c); return 0; }
树的公共祖先
#include<bits/stdc++.h> using namespace std; const int N=1110; int n,m,g[N][N],dep[N],st[N],f[N]; void dfs(int x,int d){ dep[x]=d; for(int i=1;i<=n;i++){ if(g[x][i]){ f[i]=x; dfs(i,d+1); } } } int main(){ int x,y,a,b; cin>>n>>x>>y; for(int i=1;i<n;i++){ cin>>a>>b; g[b][a]=1,st[a]=1; } int rt=1; for(int i=1;i<=n;i++){ if(!st[i]){ rt=i; break; } } dfs(rt,1); while(dep[x]>dep[y]) x=f[x]; while(dep[x]<dep[y]) y=f[y]; while(x!=y) x=f[x],y=f[y]; cout<<x; return 0; }
树的公共祖先(2)
#include<bits/stdc++.h> using namespace std; const int N=1110; int n,m,g[N][N],dep[N],st[N],f[N]; void dfs(int u){ for(int v=1;v<=n;v++){ if(g[u][v]){ g[v][u]=0,dep[v]=dep[u]+1,f[v]=u; dfs(v); } } } int lca(int x,int y){ while(x!=y){ if(dep[x]>dep[y]) x=f[x]; else y=f[y]; } return x; } int main(){ int x,y,a,b; cin>>n>>x>>y; for(int i=1;i<n;i++){ cin>>a>>b; g[a][b]=g[b][a]=1; } dfs(1); cout<<lca(x,y); return 0; }
树的高度
#include<bits/stdc++.h> using namespace std; const int N=1110; int n,g[N][N]; int dfs(int u){ int c=0; for(int v=1;v<=n;v++){ if(g[u][v]){ c=max(c,dfs(v)); } } return c+1; } int main(){ int a,b; cin>>n; while(cin>>a>>b){ g[a][b]=1; } cout<<dfs(1); return 0; }
双指针模板
for(int i=1,j=1;i<=n;i++){ while(j<=m&&xxx) j++; }
-
通过的题目
- 1
- 2
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 77
- 80
- 82
- 83
- 85
- 86
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 98
- 99
- 100
- 101
- 108
- 109
- 110
- 113
- 115
- 118
- 119
- 120
- 121
- 127
- 129
- 130
- 137
- 148
- 149
- 152
- 154
- 155
- 158
- 166
- 167
- 168
- 169
- 175
- 180
- 181
- 182
- 183
- 184
- 188
- 190
- 191
- 220
- 221
- 224
- 231
- 241
- 243
- 244
- 246
- 249
- 253
- 258
- 259
- 260
- 264
- 267
- 268
- 273
- 276
- 277
- 282
- 283
- 284
- 294
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 304
- 306
- 307
- 308
- 309
- 310
- 314
- 317
- 319
- 320
- 321
- 326
- 328
- 334
- 335
- 337
- 338
- 342
- 345
- 348
- 355
- 360
- 385
- 387
- 388
- 389
- 390
- 391
- 402
- 405
- 410
- 413
- 414
- 415
- 416
- 417
- 419
- 423
- 431
- 432
- 436
- 444
- 456
- 458
- 459
- 460
- 461
- 464
- 466
- 487
- 488
- 489
- 491
- 495
- 496
- 502
- 505
- 506
- 508
- 510
- 511
- 512
- 514
- 517
- 533
- 541
- 550
- 555
- 561
- 562
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 661
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 680
- 682
- 683
- 684
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 722
- 729
- 731
- 732
- 733
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 748
- 760
- 761
- 768
- 769
- 773
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 786
- 787
- 800
- 804
- 805
- 808
- 809
- 821
- 824
- 828
- 829
- 832
- 841
- 842
- 856
- 857
- 859
- 862
- 863
- 866
- 867
- 868
- 876
- 877
- 878
- 895
- 904
- 905
- 913
- 949
- 954
- 955
- 956
- 958
- 959
- 960
- 961
- 962
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 975
- 976
- 979
- 980
- 982
- 983
- 984
- 993
- 1009
- 1010
- 1011
- 1012
- 1020
- 1024
- 1034
- 1036
- 1037
- 1057
- 1058
- 1064
- 1077
- 1085
- 1091
- 1092
- 1110
- 1114
- 1123
- 1127
- 1128
- 1132
- 1137
- 1143
- 1153
- 1157
- 1158
- 1160
- 1161
- 1162
- 1163
- 1164
- 1166
- 1178
- 1179
- 1180
- 1200
- 1307
- 1599
- 1740
- 1775
- 1865
- 1866
- 1868
- 1876
- 1888
- 1898
- 1899
- 1900
- 1901
- 1902
- 1923
- 1932
- 1933
- 1934
- 1938
- 1939
- 1940
- 1941
- 1965
- 1966
- 1967
- 1968
- 1970
- 1977
- 1978
- 1983
- 1997
- 2001
- 2002
- 2003
- 2005
- 2007
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2017
- 2018
- 2019
- 2020
- 2022
- 2023
- 2024
- 2027
- 2028
- 2035
- 2037
- 2038
- 2039
- 2043
- 2044
- 2045
- 2059
- 2078
- 2113
- 2130
- 2161
- 2201
- 2206
- 2209
- 2214
- 2221
- 2233
- 2234
- 2235
- 2236
- 2252
- 2260
- 2261
- 2268
- 2269
- 2270
- 2273
- 2274
- 2276
- 2277
- 2281
- 2286
- 2306
- 2307
- 2349
- 2351
- 2352
- 2356
- 2358
- 2360
- 2380
- 2407
- 2420
- 2636
- 2637
- 2640
- 2641
- 2642
- 2646
- 2651
- 2652
- 2666
- 2668
- 2684
- 2701
- 2708
- 2709
- 2710
- 2711
- 2715
- 2717
- 2732
- 2734
- 2735
- 2756
- 2762
- 2772
- 2814
- 2820
- 2834
- 2843
- 2852
- 2859
- 2860
- 2861
- 2894
- 2895
- 2896
- 2900
- 2904
- 2906
- 2907
- 2926
- 2927
- 2943
- 2945
- 2958
- 2967
- 3952
-
最近活动
- 2024年8月31日月末测试(C2025届&C2026届) OI
- 2024年8月普及组初赛模拟题 OI
- C2025届2024年2月18日知识巩固赛 乐多
- C2025届2024年2月8日新春赛 乐多
- C2026届2024年1月31日新年赛~Happy New Year OI
- C2025届2024年1月30日欢乐赛~Happy OI
- 7.dfs 作业
- C2026届2024年1月27日-寒假集训 作业
- C2025届2024年1月27日-寒假集训 作业
- C2025届2023年12月31日元旦跨年赛 OI
- C2026届2023年12月分支结构练习 作业
- C2026届2023年12月顺序结构练习 作业
- 6.栈_队列 作业
- 5.二分 作业
- C2026届2023年11月练习 作业
- C2025届2023年11-12月练习 作业
- C2025届2023年11月18日练习_排序 作业
- 教师练题之一维数组 作业
- 教师练题之循环 作业
- C2025届2023年10月20日练习_STL 作业
- C2025届2023年国庆练习(20231003) IOI
- C2025届2023年国庆练习(20231005) OI
- C2025届2023年中秋节练习(20230930) IOI
- C2025届2023年国庆前练习(20230928) IOI
- 2023年初赛知识练习(20230915) OI
- 2023年CSP-J练习(20230830) OI
- 2023年暑期初赛知识练习(20230829) OI
- C2025届2023年暑期CSP-J练习(20230828) OI
- 2023年暑期初赛知识练习(20230813) OI
- C2025届暑期二阶上练习题(20230730) OI
- C2025届普及组二阶(上)练习(20230725) OI
- C2025届普及组一阶测试(校本部20230718) OI
- C2025届普及组一阶总复习(20230715) 作业
- C2025届普及组一阶测试(20230715) OI
- C2025届普及组一阶中期测试(20230605) OI
- C2025届循环结构练习3周六班(20230521) 作业
- C2025届循环结构练习2周六班(20230516) 作业
- C2025届循环结构练习1周六班(20230504) 作业
- C2025届选择结构练习周六班(20230413) 作业
题目标签
- 基础语法
- 123
- 分支问题
- 110
- 基础问题
- 73
- 简单循环
- 72
- 字符串
- 38
- 数组问题
- 37
- 顺序结构
- 36
- 普及组
- 30
- 嵌套循环
- 28
- 入门
- 23
- 需要找规律的循环
- 22
- 递归
- 21
- noip
- 21
- 结构体
- 17
- 一维数组
- 16
- 文件重定向
- 16
- 二维数组
- 16
- 搜索
- 16
- 数论
- 15
- 素数判定
- 15