-
个人简介
题库十九页(刷题者的福利)
斐波那契额数列
拓扑排序
#include<bits/stdc++.h> using namespace std; int n,m; //n:节点数 m:边数 int cnt[10001]; //储存节点入度 int main(){ cin>>n>>m; vector<int> g[10001];//节点之间的连接关系 vector<int> v; //储存序列 (输出) queue<int> q; //储存访问的节点 for(int i=1;i<=m;i++){ int x, y; cin >> x >> y; cnt[y]++; //节点y的入度增加一 g[x].push_back(y); } //此时已完成输入 for(int i=1;i<=n;i++){ //找出入度是0 if(cnt[i]==0) q.push(i); } while(q.size()){ int temp = q.front(); v.push_back(temp); //记录到v里面 q.pop(); //访问完队首 for(int i=0;i<g[temp].size();i++){ int p=g[temp][i]; //和temp相连的点 cnt[p]--; //p点的入度-1 if(cnt[p]==0){ q.push(p); //下一次输出 } } } if(v.size()!=n){ cout<<"has circle";//有圈无法排序 return 0; } for(int i=0;i<v.size();i++){ cout<<v[i]<<" "; } return 0; }
二叉树遍历
# include <bits/stdc++.h> using namespace std; vector<int> v[1001]; int n,l,r; void fun1(int x){//x:当前节点 先序 cout<<x<<" "; if(v[x][0]) fun1(v[x][0]);//左子节点 if(v[x][1]) fun1(v[x][1]);//右子节点 } void fun2(int x){//中序 if(v[x][0]) fun2(v[x][0]); cout<<x<<" "; if(v[x][1]) fun2(v[x][1]); } void fun3(int x){//后序 if(v[x][0]) fun3(v[x][0]); if(v[x][1]) fun3(v[x][1]); cout<<x<<" "; } int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>l>>r; v[i].push_back(l); v[i].push_back(r); } fun1(1); cout<<endl; fun2(1); cout<<endl; fun3(1); return 0; }
二叉树的性质: 性质1:第1层最多有多少个节点? 2^(i-1) 性质2:i层一共有多少个节点? 2^i-1 性质3:对于任意的二叉树,n0=n2+1 n = n0+n1+n2 n = n1+n2*2+1 n0 = n2+1 性质4:求二叉树的深度 floor(log2(n))+1 性质5:对于完全二叉树 一个节点的编号为i,左子节点编号为2*i,右子节点编号为2*i+1叶子节点的数量为 n-n/2;
完全背包 # include <bits/stdc++.h>//背包 using namespace std; int n,total; int v[100001],c[100001]; int dp[100001]; int main() { cin>>n>>total; for(int i=1;i<=n;i++) cin>>v[i]>>c[i]; for(int i=1;i<=n;i++){ for(int j=1;j<=total;j++){ if(j>=v[i]){ dp[j]=max(dp[j],c[i]+dp[j-v[i]]); } } } cout<<dp[total]; return 0; }
01背包
# include <bits/stdc++.h>//背包 using namespace std; int n,total; int v[100001],c[100001]; int dp[100001]; int main() { cin>>n>>total; for(int i=1;i<=n;i++) cin>>v[i]>>c[i]; for(int i=1;i<=n;i++){ for(int j=total;j>=1;j--){ if(j>=v[i]){ dp[j]=max(dp[j],c[i]+dp[j-v[i]]); } } } cout<<dp[total]; return 0; }
//STL容器2 // vector 动态数组、向量 vector<int> vec;//定义 vector<int> vec1(5);// 创建 初始空间为5,元素默认值为0 vector<int> vec2(5,2);//创建 初始空间为5 元素默认值为2 vector<int> vec3(vec2);//创建 其拷贝vec2 int arr[5]={1,2,3,4,5}; vector<int>vec4(arr);//创建 其拷贝数组arr vector<int>vec5(arr+1,arr+5);//创建 其拷贝数组区间[1,5) //vector的常规函数 vec.push_back(n);//把n添加到vec的最后 vec.front(); //返回vec的第一个元素 vec.pop_back();//删除vec的最后一个元素 vec.erase(iter);//删除iter所在位置元素 vec.clear();//清空 vec.empty(); //判断是否为空 //set的创建 set<int> set1;//定义 set<int> set2(set1);//创建set2,其内容拷贝set1 int arr[5]={1,2,3,4,5}; set<int> set4(arr,arr+5);//创建set4,其内容拷贝十足区间[0,5) //set的常规函数 set1.insert(n);//将n添加到set1的最后 set1.find(n);//返回set1中间值为n的迭代器位置,如果没有返回end(); set1.erase(x);//删除值为x的所有元素返回删除数量 set1.erase(iter);//删除iter所在位置的元素 set1.erase(left,rigrt);//删除 [left,rigrt)范围内所有元素 set1.clear();//清空 set1.empty();//判断是否为空 //迭代器访问(vector) vector<int>::iterator iter; for(iter=vec.begin();iter!=vec.end;iter++) cout<<*iter<<" "; //迭代器访问(set) set<int>::iterator iter; for(iter=set.begin();iter!=set.end();iter++) cout<<*iter<<" "; //利用数组下标直接访问但是需要获取当前vec的长度 for(int i=0;i<vec.size();i++) cout<<vec[i]<<" "; //map map<string,int> a; //第一个表示key数据类型,第二个表示value数据类型 a["one"] = 1; a["tow"] = 2; a["one"] = 3; //赋值时,key值作为下标,后面的数据作为对应key的value元素,在map中新添加一对数据 //赋值时,如果key值已经存在,表示将此key值对应的value元素修改为新的数据 cout << a["one"] << endl; //key值可以作为下标,直接输出对应的元素 cout << a["three"] << endl; //注意:下标访问不会做下标检查,如上语句不会报错,但打印结果为空,因为下标访问会插入不存在的key,对应的value为默认值 a.insert({"three",3}); //将指定键值对插入到map中,插入元素会自动插入到合适的位置,使整个map有序,默认是按照key从小到大排序 a.erase("one"); //删除指定key值的键值对 cout << a.count("three") << endl; //查询指定key值是否出现 cout << a.empty() << endl; //判断是否为空,非空为0,空为1 cout << a.size() << endl; //获取map长度 map<string,int>::iterator it = a.begin(); //创建一个map类型迭代器 for(;it!=a.end();it++){ cout << it->first << " " << it->second << endl; } //遍历并输出,因为是类结构体指针,每个键值对通过first访问key,second访问value return 0;
}
高精度加法
# include <bits/stdc++.h> using namespace std; int main() { char s1[10005]={},s2[10005]={}; int a[10005]={},b[10005]={},c[10005]={}; cin>>s1>>s2; for(int i=strlen(s1)-1,j=0;i<strlen(s1);i--,j++){ a[j]=s1[i]-'0'; } for(int i=strlen(s2)-1,j=0;i<strlen(s2);i--,j++){ b[j]=s2[i]-'0'; } int len=max(strlen(s1),strlen(s2)); for(int i=0;i<len;i++){ c[i]+=a[i]+b[i]; if(c[i]>=10){ c[i]-=10; c[i+1]+=1; } } if(c[len]!=0) len++; for(int i=len-1;i>=0;i--){ cout<<c[i]; } return 0; }
高精度减法
#include<bits/stdc++.h> using namespace std; int a[100000],b[100000],c[100000]; int main(){ string s1,s2; cin>>s1>>s2; int len=s1.size(),len1=s2.size(); if(len<len1||(len==len1&&s1<s2)) { swap(s1,s2); swap(len,len1); cout<<'-'; } for(int i=0;i<len;i++) a[len-1-i]=s1[i]-48; for(int i=0;i<len1;i++) b[len1-1-i]=s2[i]-48; for(int i=0;i<len;i++){ if(a[i]-b[i]<0){ a[i+1]-=1; a[i]+=10; } c[i]=a[i]-b[i]; } while(len>1&&c[len-1]==0) len--; for(int i=len-1;i>=0;i--) cout<<c[i]; return 0; }
广度优先搜索
using namespace std; const int N=1e6+1;//创建一个常量 bool vis[N];//标记点是否被走过 int n,k; struct node{ int x; int time; //位置和时间 }; int fx[3]={1,-1};//三个方向 void bfs(){ //1.首元素入队 node head={n,0}; queue<node> q; q.push(head); vis[n]=1; //2.进入循环 while(q.size()){ //2.1获取首元素 head=q.front(); fx[2]=head.x; //2.2遍历三个方向 for(int i=0;i<=2;i++){ int xx=head.x+fx[i]; if(xx==k){ cout<<head.time+1; return ; } if((0<=xx&&xx<=100000)&&!vis[xx]){ node tmp={xx,head.time+1}; q.push(tmp); vis[xx] = 1; } } q.pop(); } } int main(){ cin>>n>>k; bfs(); return 0; } ```
传 送 门
队列加栈操作
//stack<int> sta;//创建一个栈 //sta.push(a);//入栈 //int a=sta.top();//返回栈顶元素 //sta.pop();//出栈 //sta.empty();//判断栈是否为空 1为空,0为非空 //sta.clear();//清空 //queue<int> que;//创建一个队列 //que.push(a);//入队 //int a=que.front();//返回队头元素 //que.pop();//出队 //que.empty();//判断队列是否为空 1为空,0为非空 //que.clear();//清空
二分查找模板
#include<bits/stdc++.h> using namespace std; int main(){ int erfen(int c[],int b,int g){ int tou=0,wei=b-1; while(tou<=wei){ int mid=(tou+wei)/2; if(c[mid]>=g){ wei=mid-1; }else if(c[mid]<g){ tou=mid+1; } } if(c[tou]==g){ return tou+1; } return -1; }
快速排序模板
#include <bits/stdc++.h> using namespace std; /* 对n个数进行排序 */ const int N=1e5+5; int a[N];//原数组 int n; void fast_sort(int left,int right){ //基本情况,递归边界 if(left>=right){ return; } //交换枢纽元,一般选中间值 int mid=(left+right)/2; //交换枢纽元和最右边的值 swap(a[mid],a[right]); int i=left,j=right-1; while(i<=j){//区间没有交错,还有元素处理 //i往右移动,直到找到比枢纽元大的数 while(a[i]<a[right]){ i++; } //j往左移动,直到找到比枢纽元小的数 while(a[j]>a[right]){ j--; } if(i<=j){ swap(a[i],a[j]); i++; j--; } } //交换枢纽元和i交换 swap(a[right],a[i]); //对左右区间进一步划分 fast_sort(left,i-1);//左 fast_sort(i+1,right);//右 } int main(){ //先输入一个n,再输入n个数 cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } fast_sort(1,n); for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } return 0; }
三、Windows CMD命令大全
- gpedit.msc-----组策略
- sndrec32-------录音机
- Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。 它在 Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具。
- explorer-------打开资源管理器
- logoff---------注销命令
- shutdown-------60秒倒计时关机命令
- lusrmgr.msc----本机用户和组
- services.msc---本地服务设置
- oobe/msoobe /a----检查XP是否激活
- notepad--------打开记事本
- cleanmgr-------垃圾整理
- net start messenger----开始信使服务
- compmgmt.msc---计算机管理
- net stop messenger-----停止信使服务
- conf-----------启动netmeeting
- dvdplay--------DVD播放器
- charmap--------启动字符映射表
- diskmgmt.msc---磁盘管理实用程序
- calc-----------启动计算器
- dfrg.msc-------磁盘碎片整理程序
- chkdsk.exe-----Chkdsk磁盘检查
- devmgmt.msc--- 设备管理器
- regsvr32 /u *.dll----停止dll文件运行
- drwtsn32------ 系统医生
- rononce -p----15秒关机
- dxdiag---------检查DirectX信息
- regedt32-------注册表编辑器
- Msconfig.exe---系统配置实用程序
- rsop.msc-------组策略结果集
- mem.exe--------显示内存使用情况
- regedit.exe----注册表
- winchat--------XP自带局域网聊天
- progman--------程序管理器
- winmsd---------系统信息
- perfmon.msc----计算机性能监测程序
- winver---------检查Windows版本
- sfc /scannow-----扫描错误并复原
- taskmgr-----任务管理器(2000/xp/2003
- wmimgmt.msc----打开windows管理体系结构(WMI)
- wupdmgr--------windows更新程序
- wscript--------windows脚本宿主设置
- write----------写字板
- wiaacmgr-------扫描仪和照相机向导
- winchat--------XP自带局域网聊天
- mplayer2-------简易widnows media player
- mspaint--------画图板
- mstsc----------远程桌面连接
- magnify--------放大镜实用程序
- mmc------------打开控制台
- mobsync--------同步命令
- iexpress-------木马捆绑工具,系统自带
- fsmgmt.msc-----共享文件夹管理器
- utilman--------辅助工具管理器
- dcomcnfg-------打开系统组件服务
- ddeshare-------打开DDE共享设置
- osk------------打开屏幕键盘
- odbcad32-------ODBC数据源管理器
- oobe/msoobe /a----检查XP是否激活
- ntbackup-------系统备份和还原
- narrator-------屏幕“讲述人”
- ntmsmgr.msc----移动存储管理器
- ntmsoprq.msc---移动存储管理员操作请求
- netstat -an----(TC)命令检查接口
- syncapp--------创建一个公文包
- sysedit--------系统配置编辑器
- sigverif-------文件签名验证程序
- ciadv.msc------索引服务程序
- shrpubw--------创建共享文件夹
- secpol.msc-----本地安全策略
- syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
- services.msc---本地服务设置
- Sndvol32-------音量控制程序
- sfc.exe--------系统文件检查器
- sfc /scannow---windows文件保护
- ciadv.msc------索引服务程序
- tourstart------xp简介(安装完成后出现的漫游xp程序)
- taskmgr--------任务管理器
- eventvwr-------事件查看器
- eudcedit-------造字程序
- compmgmt.msc---计算机管理
- packager-------对象包装程序
- perfmon.msc----计算机性能监测程序
- charmap--------启动字符映射表
- cliconfg-------SQL SERVER 客户端网络实用程序
- Clipbrd--------剪贴板查看器
- conf-----------启动netmeeting
- certmgr.msc----证书管理实用程序
- regsvr32 /u *.dll----停止dll文件运行
- regsvr32 /u zipfldr.dll------取消ZIP支持
- cmd.exe--------CMD命令提示符哪里有什么胭脂想象,不过是虚晃一梦罢了,梦醒了,什么都没有了
下面有东西(一定要看)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | \ | / \ | / \ / 都说了别看
-
通过的题目
- P1
- P2
- P3
- P4
- P5
- P6
- P7
- P8
- P9
- P10
- P11
- P12
- P13
- P14
- P15
- P16
- P17
- P18
- P19
- P20
- P21
- P22
- P23
- P24
- P25
- P26
- P27
- P28
- P29
- P30
- P31
- P32
- P33
- P34
- P36
- P37
- P38
- P39
- P40
- P41
- P43
- P45
- P46
- P47
- P52
- P53
- P54
- P55
- P56
- P57
- P58
- P59
- P60
- P61
- P62
- P63
- P67
- P69
- P70
- P74
- P77
- P78
- P79
- P80
- P81
- P82
- P88
- P89
- P90
- P91
- P92
- P93
- P94
- P95
- P96
- P97
- P98
- P99
- P100
- P101
- P102
- P104
- P107
- P111
- P113
- P114
- P120
- P125
- P128
- P139
- P140
- P141
- P145
- P147
- P152
- P154
- P156
- P158
- P160
- P161
- P162
- P164
- P171
- P172
- P173
- P174
- P175
- P176
- P177
- P180
- P182
- P183
- P190
- P198
- P205
- P208
- P211
- P214
- P215
- P236
- P242
- P249
- P257
- P271
- P272
- P290
- P291
- P296
- P297
- P298
- P299
- P300
- P301
- P302
- P305
- P311
- P315
- P316
- P329
- P331
- P332
- P339
- P342
- P344
- P349
- P352
- P353
- P365
- P372
- P373
- P375
- P378
- P379
- P380
- P381
- P382
- P383
- P384
- P387
- P388
- P391
- P397
- P399
- P403
- P405
- P406
- P416
- P422
- P423
- P430
- P431
- P436
- P447
- P450
- P451
- P454
- P465
- P467
- P469
- P475
- P476
- P478
- P479
- P480
- P483
- P484
- P486
- P489
- P492
- P498
- P502
- P517
- P518
- P538
- P539
- P541
- P553
- P560
- P563
- P584
- P586
- P594
- P595
- P596
- P619
- P632
- P640
- P649
- P650
- P667
- P668
- P669
- P670
- P688
- P700
- P707
- P708
- P711
- P712
- P722
- P723
- P724
- P725
- P747
- P782
- P787
- P792
- P813
- P815
- P817
- P829
- P864
- P900
- P901
- P903
- P907
- P936
- P950
- P951
- P952
- P965
- P980
- P981
- P1001
- P1013
- P1014
- P1019
- P1021
- P606
- P1069
- P1086
- P1087
- P1093
- P1101
- T1
- T10
- T107
- T108
- T109
- T11
- T119
- T12
- T120
- T125
- T13
- T131
- T14
- T142
- T144
- T145
- T149
- T15
- T159
- T16
- T160
- T17
- T172
- T175
- T18
- T181
- T185
- T188
- T19
- T192
- T2
- T20
- T205
- T21
- T210
- T212
- T215
- T218
- T219
- T22
- T223
- T224
- T225
- T227
- T228
- T24
- T240
- T25
- T259
- T26
- T263
- T27
- T28
- T280
- T281
- T284
- T288
- T29
- T3
- T30
- T304
- T306
- T307
- T309
- T31
- T313
- T34
- T346
- T356
- T359
- T360
- T361
- T362
- T37
- T38
- T39
- T392
- T397
- T4
- T41
- T410
- T411
- T436
- T437
- T472
- T474
- T5
- T6
- T61
- T66
- T7
- T70
- T8
- T9
- T99
- P1912
- P1967
- P1976
- P1983
- P1984
- P1991
- Z1
- Z2
- Z4
- Z5
- Z6
- Z7
- Z8
- Z9
- Z10
- Z12
- Z13
- P2052
- P2053
- P2085
- pig003
- P2015
- P2192
- P2016
- P2194
- Z40
- Z44
- Z41
- P2232
- P2240
- P2250
- P2308
- P2310
- P2323
- P2324
- P2375
- P2376
- P2377
- Y4
- Y5
- P2411
- P2412
- P2413
- P2414
- P2415
- P2416
- P2424
- P2426
- P2429
- Y21
- P2566
- P2567
- P2568
- P2740
-
最近活动
- CSP-S 2024 第二轮认证 小赛码自测 IOI
- 蓝桥杯省赛练习-202408 IOI
- 电子学会四级 作业
- 【蓝桥杯stema】202310真题练习 IOI
- 【蓝桥杯stema】202210真题练习 IOI
- 迎新训练赛 IOI
- 【CQMC】重庆小码王C++月赛 - 语法组 #2 IOI
- 【CQMC】重庆小码王C++月赛 - 算法组 #1 IOI
- 【CQMC】重庆小码王C++月赛 - 语法组 #1 IOI
- 【蓝桥杯stema】202303真题练习 IOI
- 秋季训练赛1 IOI
- 金牌集训营编程测试-1-20230720 IOI
- 金牌集训营编程测试-1-20230716 IOI
- 暑期集训入营算法编程题目 IOI
- 暑期集训入营语法编程题目 IOI
- 暑期集训入营笔试题目 OI
- 蓝桥杯真题练习 IOI
- 等级考试一级练习 作业
题目标签
- 一本通编程启蒙
- 95
- 初窥门径
- 94
- 顺序结构
- 47
- 略有小成
- 47
- 驾轻就熟
- 47
- 分支结构
- 43
- 循环结构
- 34
- 模拟
- 23
- 融会贯通
- 23
- 循环嵌套
- 22
- 排序
- 15
- 字符串
- 14
- 结构体
- 13
- 其他
- 12
- 蓝桥杯
- 8
- 递推
- 8
- 一维数组
- 8
- 动态规划
- 8
- 递归
- 7
- 贪心
- 7