-
个人简介
3000 2999 2997 2994
//快速排序 #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int N=1e6+10; int n,a[N]; void quick_sort(int l,int r){ //出口 if(l>=r) return ; int base=a[l+r>>1],i=l,j=r;//左边 <=base <=右边 while(i<j){ while(a[i]<base)i++; while(a[j]>base)j--;//a[i]>=base,a[j]<=base if(i<=j)swap(a[i],a[j]),i++,j--; } //递归关系 quick_sort(l,j);//左边 quick_sort(i,r);//右边 } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } quick_sort(1,n); for(int i=1;i<=n;i++){ cout<<a[i]<<"\n"[i==n]; } return 0; }
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int s(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0) return 0; } return 1; } string a[1000005]; int main(){ int n,m=0; cin>>n; for(int i=2;i<n;i++){ for(int j=i;j<n;j++){ int k=n-i-j; if(j<=k){ if(s(i)&&s(j)&&s(k)){ m+=1; char n1=n-'0'; a[m]=a[m]+n1+'='+'i'+'+'+'j'+'+'+'k'; break; } }else{ break; } } } cout<<m; for(int i=1;i<=m;i++){ cout<<a[i]<<endl; } return 0; }
C++ Queues(队列)
C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。
back() 返回最后一个元素 empty() 如果队列空则返回真 front() 返回第一个元素 pop() 删除第一个元素 push() 在末尾加入一个元素 size() 返回队列中元素的个数 C++ Stacks(堆栈)
C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。
操作 比较和分配堆栈 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素 //差分 #include<iostream> using namespace std; const int N=1e5+10; int n,m,k,a[N],dif[N]; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) dif[i]=a[i]-a[i-1]; int l,r,c; while(m--){ cin>>l>>r>>c; dif[l]+=c; dif[r+1]-=c; } for(int i=1;i<=n;i++) dif[i]+=dif[i-1]; for(int i=1;i<=n;i++) printf("%d ",dif[i]); return 0; } /* win+r>>mspaint-----调出画图 差分:i 1 2 3 4 5 6 ai 1 2 3 1 2 1 dif 1 1 0 -1 1 -1 前缀S 1 2 2 1 2 1 对差分数组求前缀和,得原数组。 */
/* int st[N], hh; // 数组模拟栈 st[++hh] = x; // 入栈 hh--; // 出栈 st[hh] // 栈顶 hh==0 // 判空 int que[N], hh, tt=-1; que[++tt] = x; // 入队 ++hh; // 出队 que[hh] // 队首 que[tt] // 队尾 tt - hh == -1 // 判空 stack<int> st; queue<int> que; C++参考手册:https://www.shouce.ren/api/c/ */
//欧拉筛法 #include<bits/stdc++.h> using namespace std; const int N=1e8,M=5761455+10;//6e6 bool st[N];//bitset<N> st; int pri[M],pn; void ss(int n) { st[0]=st[1]=1; for(int i=2;i<=n;i++){ if(!st[i]) pri[++pn]=i; for(int j=1;pri[j]<=n/i;j++){ st[i*pri[j]]=1; if(i%pri[j]==0) break; } } } int main() { cout<<(sizeof(st)+sizeof(pri))*1.0/1024/1024<<"MB"<<endl; ss(1e8); cout<<pn<<" "<<pri[pn]<<endl; for(int i=1;i<=100;i++) cout<<pri[i]<<" "; return 0; }
二叉树性质: 1.
//P1178二叉树的遍历 #include<iostream> #include<algorithm> using namespace std; const int N=50; int st[N]; struct Node{ char c;//根 int l,r;//l左,r右 }tr[N];//造成树 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; }//后序遍历 int main(){ int n,l,r; char c; cin>>n; for(int i=1;i<=n;i++){ cin>>c>>l>>r; tr[i]={c,l,r}; st[l]=st[r]=1; } int rt=1; for(int i=1;i<=n;i++){//标记,找根 if(!st[i]){ rt=i; break; } } pre(rt); cout<<endl; in(rt); cout<<endl; post(rt); cout<<endl; return 0; }
//vector容器 #include<iostream> #include<algorithm> #include<vector> using namespace std; vector<int>a; vector<int>b(10); vector<int>c(10,1); int main(){ for(int i=0;i<10;i++)a.push_back(i); for(int i=0;i<10;i++)b[i]=i; for(int i=0;i<10;i++)cout<<a[i]<<" "; cout<<endl; for(int i=0;i<10;i++)cout<<b[i]<<" "; cout<<endl; for(int i=0;i<10;i++)cout<<c[i]<<" "; cout<<endl; return 0; } /* int x=111, pos=1, n=10; vec.push\_back(x); // 末尾添加数据 x vec.pop\_back(); // 末尾删除元素 vec.insert(vec.begin()+pos,x); // 在第pos个位置前插入 x vec.front(); // 首位元素 vec.back(); // 末位元素 vec.empty(); // 是否为空 vec.size(); // 返回元素数 vec.resize(n); // 将长度设置为 n vec.reserve(n); // 将空间设置为 n个元素大小 vec.capacity(); // 返回空间容量,最大能存放元素个数 vec.clear(); // 清空 vec.begin(); // 开始指针,指向第一个元素的位置 vec.end(); // 末尾指针,指向最后一个元素的下一个位置 vec[1]; // 下标访问,并不会检查是否越界 */
堆:
//堆 #include<bits/stdc++.h> #include<queue> using namespace std; priority_queue<int> q;//默认大顶堆 priority_queue<int,vector<int>,less<int>> q2;//大顶堆 ,容器vector,比较函数 less priority_queue<int,vector<int>,greater<int>> q3;//小顶堆 ,容器vector,比较函数 greater //pop() 移除栈顶元素 //push() 在栈顶增加元素 //size() 返回栈中元素数目 //top() 返回栈顶元素 int main(){ for(int i=1;i<=10;i++) q2.push(rand()%17); while(q2.size()){ auto u=q2.top();q2.pop(); cout<<u<<endl; } return 0; }
//双指针模板 for(int i=1,j=1;j<=n;j++){ while(j<=m&&xxx) j++; } #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=66; int n,k,ans,a[N]; void dfs(int u,int v,int s) { } int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+1+n,greater<int>()); for(len=1;len<=sum;len++){ if(sum%len)cotinue; cnt=sum/len; if(dfs(1,0,0)) break; } return 0; }
#include<bits\stdc++.h> using namespace std; const int N=10; int g[N][N],m[N]; int n,t,x,y; abc(){ vector<int> d(N,1e8); d[x]=0; for(int i=1;i<=n;i++){ int u=-1; for(int j=1;j<=n;j++){ if(!m[j]&&(u==-1||d[u]>d[j]))u=j; } if(u==-1)break; m[u]=1; for(int j=1;j<=n;j++){ int v=j,w=g[u][j]; if(d[v]>d[u]+w){ d[v]=d[u]+w; } } } return d[y]; } int main() { cin>>n>>t; for(int i=1;i<=t;i++){ int a,b,l; cin>>a>>b>>l; g[a][b]=g[b][a]=l; } // for(int i=1;i<=m;i++){ // for(int j=1;j<=m;j++){ // cout<<g[i][j]<<" "; // } // cout<<endl; // } cin>>x>>y; int s=abc(); if(s>1e7){ cout<<"No path"; }else{ cout<<s; } return 0; }
-
通过的题目
- 1
- 2
- 6
- 7
- 8
- 9
- 10
- 12
- 13
- 14
- 15
- 16
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 36
- 37
- 41
- 42
- 43
- 44
- 45
- 46
- 48
- 52
- 54
- 55
- 56
- 57
- 59
- 61
- 62
- 64
- 65
- 75
- 76
- 78
- 82
- 83
- 85
- 88
- 89
- 101
- 108
- 109
- 110
- 115
- 136
- 137
- 143
- 154
- 155
- 156
- 157
- 161
- 162
- 167
- 183
- 186
- 187
- 188
- 189
- 190
- 191
- 195
- 201
- 202
- 203
- 212
- 214
- 220
- 228
- 241
- 246
- 248
- 249
- 256
- 258
- 267
- 273
- 275
- 276
- 277
- 281
- 283
- 284
- 295
- 304
- 308
- 310
- 317
- 319
- 320
- 328
- 329
- 335
- 337
- 340
- 355
- 385
- 390
- 402
- 418
- 427
- 429
- 431
- 432
- 433
- 436
- 442
- 454
- 456
- 464
- 466
- 483
- 487
- 495
- 496
- 502
- 511
- 514
- 517
- 533
- 541
- 561
- 562
- 606
- 613
- 614
- 615
- 616
- 617
- 643
- 661
- 663
- 667
- 668
- 672
- 680
- 682
- 683
- 684
- 685
- 687
- 692
- 700
- 701
- 702
- 703
- 707
- 713
- 714
- 716
- 717
- 731
- 732
- 733
- 738
- 739
- 740
- 741
- 743
- 744
- 748
- 760
- 761
- 763
- 768
- 769
- 773
- 785
- 786
- 787
- 790
- 805
- 817
- 821
- 828
- 829
- 859
- 862
- 867
- 868
- 876
- 884
- 885
- 889
- 893
- 896
- 901
- 902
- 903
- 905
- 913
- 917
- 930
- 949
- 952
- 958
- 970
- 984
- 996
- 1009
- 1023
- 1047
- 1048
- 1049
- 1057
- 1064
- 1076
- 1077
- 1092
- 1096
- 1110
- 1114
- 1128
- 1137
- 1138
- 1139
- 1153
- 1157
- 1158
- 1160
- 1161
- 1162
- 1163
- 1164
- 1166
- 1178
- 1179
- 1180
- 1207
- 1209
- 1307
- 1564
- 1568
- 1599
- 1666
- 1868
- 1876
- 1888
- 1898
- 1899
- 1900
- 1901
- 1902
- 1934
- 1938
- 1939
- 1940
- 1941
- 1965
- 1967
- 1968
- 1970
- 1971
- 1977
- 1983
- 1997
- 2001
- 2002
- 2003
- 2005
- 2006
- 2007
- 2009
- 2011
- 2012
- 2013
- 2015
- 2019
- 2020
- 2022
- 2023
- 2024
- 2035
- 2038
- 2039
- 2043
- 2044
- 2045
- 2059
- 2078
- 2113
- 2114
- 2130
- 2131
- 2140
- 2143
- 2144
- 2149
- 2161
- 2209
- 2221
- 2228
- 2233
- 2234
- 2235
- 2256
- 2260
- 2261
- 2266
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2276
- 2277
- 2281
- 2306
- 2307
- 2349
- 2351
- 2352
- 2353
- 2407
- 2420
- 2569
- 2636
- 2640
- 2641
- 2642
- 2646
- 2651
- 2652
- 2666
- 2668
- 2684
- 2708
- 2709
- 2717
- 2719
- 2763
- 2810
- 2814
- 2820
- 2843
- 2852
- 2859
- 2860
- 2861
- 2895
- 2896
- 2920
- 2926
- 2927
- 2943
- 2945
- 2958
- 2967
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3035
- 3170
- 3177
- 3205
- 3206
- 3207
- 3208
- 3305
- 3465
- 3529
- 3566
- 3606
- 3616
- 3677
- 3692
- 3707
- 3952
-
最近活动
- 2024年国庆C2025&G2027届赛前训练 IOI
- 2024年国庆C2025&G2027届常规训练 IOI
- 2024年8月31日月末测试(C2025届&C2026届) OI
- 2024年8月普及组初赛模拟题 OI
- C2024&C2025届2024年暑假知识巩固赛 乐多
- 2024年7月3日C2025届周末测试 乐多
- 2024年6月5日~初二~为高考加油哦 乐多
- 2024年5月2日~主打一个随心 IOI
- 2024年4月30日~假期快乐~ IOI
- 图论基础 作业
- 20240404_速度赛 作业
- 搜索剪枝 作业
- 搜索基础 作业
- C2025届2024年3月2日开学赛 乐多
- C2025届2024年2月18日知识巩固赛 乐多
- C2025届2024年2月8日新春赛 乐多
- C2025届2024年2月4日立春赛 OI
- C2026届2024年1月31日新年赛~Happy New Year OI
- C2025届2024年1月30日欢乐赛~Happy OI
- 7.dfs 作业
- C2025届2024年1月27日-寒假集训 作业
- C2026届2023年12月31日元旦跨年赛 OI
- C2025届2023年12月31日元旦跨年赛 OI
- C2026届2023年12月顺序结构练习 作业
- 6.栈_队列 作业
- 5.二分 作业
- C2026届2023年11月练习 作业
- C2025届2023年11-12月练习 作业
- C2025届2023年11月18日练习_排序 作业
- 教师练题之循环 作业
- C2025届2023年10月20日练习_STL 作业
- C2025届2023年国庆练习(20231005) OI
- C2024届2023年中秋节练习(20230930) IOI
- 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届2023年暑期练习 作业
- C2025届普及组二阶(上)练习(20230725) OI
- C2024届二阶(下)测试题(20230723) OI
- C2025届普及组一阶测试(校本部20230718) OI
- C2025届普及组一阶总复习(20230715) 作业
- C2025届普及组一阶测试(20230715) OI
- C2025届普及组一阶基础知识测试(20230704) IOI
- C2025届普及组一阶中期测试(20230605) OI
- C2025届循环结构练习3周六班(20230521) 作业
- C2025届循环结构练习2周六班(20230516) 作业
- C2025届选择结构练习周六班(20230413) 作业
题目标签
- 基础语法
- 118
- 分支问题
- 39
- 简单循环
- 38
- 基础问题
- 36
- 顺序结构
- 33
- 二维数组
- 25
- 递归
- 24
- 普及组
- 21
- 搜索
- 21
- dfs
- 21
- 字符串
- 20
- noip
- 19
- 结构体
- 19
- 动态规划
- 18
- 需要找规律的循环
- 17
- dp
- 17
- 数组问题
- 16
- 入门
- 15
- 其他
- 15
- 挖土机
- 15