-
个人简介
反极域电子教室代码
#include<bits/stdc++.h> #include <windows.gh> using namespace std; void movexy(short x, short y){ COORD position={x, y}; HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut, position); } int main(){ movexy(37, 7); cout<<"反电子教室系统"<<endl; cout<<endl; cout<<" 目前可以反击:"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); cout<<" 红蜘蛛多媒体网络教室 - 输入 k-rs即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); cout<<" 极域电子教室 - 输入 k-jy即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); cout<<" 伽卡他卡电子教室 - 输入 k-yk即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); cout<<" 如果在开启本程序后关闭本程序,"<<endl; cout<<" 本次反击将无效!"<<endl; cout<<" input >>> "; string s; cin>>s; if(s=="k-rs"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); cout<<" 红蜘蛛反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1) { system("taskkill /f /t /im REDAgent.exe"); system("cls"); } } if(s=="k-jy"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); cout<<" 极域反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1) { system("taskkill /f /t /im StudentMain.exe"); system("cls"); } } if(s=="k-yk"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); cout<<" 伽卡他卡反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1){ system("taskkill /f /t /im Student.exe"); system("cls"); } } return 0; }
map(键值对)笔记
#include <bits/stdc++.h> using namespace std; int main(){ map<int,int> m;//创建键值对 //键类型,值类型 m[1]=2;//插入键为1,值为2,如果存在键为1的键值对,将键为1的值修改为2 m[1]++; cout << m[1] << endl; cout << m.count(3) << endl; //如果存在键为3的键值对,返回1,否则返回0 cout << m.size() << endl; //返回键值对的数量 m.erase(1);//删除键为1的键值对 m.insert({1,3});//插入键值对1-3 m[5]=6; m[2]=4; //会自动将键值对按照键的升序排序(如果键是字符串,按照字典序排序) for(auto it:m){ cout<<it.first<<" ";//first表示键 cout<<it.second<<endl;//second表示值 } //要加-std=c++11 //键值对中键是唯一的,值是不唯一的 //插入,删除,修改的时间复杂度都是O(log(n)) return 0; }
原码,反码,补码之间的转换
数据是以二进制的形式存放的 以补码的形式存放 正数 9 0000 1001 原码 = 反码 = 补码 负数 -9 1000 1001 原码 1111 0110 反码 = 原码除了符号位取反/补码-1 1111 0111 补码 = 反码+1 补码的作用:简化整数加减法的运算 举例: 10-9: 0000 1010 (10的补码) + 1111 0111 (-9的补码) ---------------- 0000 0001 (1的补码)
十进制小数转二进制小数
口诀: 乘2取整,正序排列 0.25 转为二进制小数 0.25*2=0.5 取整整数 0 0.5*2=1 取整整数 1 正序排列 0.01
二进制小数转十进制
举例: 0 . a b c 0 . a*1/2的1次方 + b*1/2的2次方 + c*1/2的3次方
不同类型的数据范围
1Byte = 8bit 关键词 二进制bit 字节Byte bool 8 1 char 8 1 short 16 2 int 32 4 long long 64 8 float 32 4 double 64 8
无符号整数 string a.size()的返回值是无符号整
unsigned int 全部表示正数 范围是 0 ~
unsigned long long 全部表示正数 范围是 0 ~
对于有符号数:
正数的最大值:
负数的最小值:
负数会比正数多一个
二叉堆基本操作 二叉堆(优先队列priority_queue) 父<子:小顶堆 父>子:大顶堆 插入的时间复杂度:O(log(n)) 删除的时间复杂度:O(log(n)) 查询最值的时间复杂度:O(1) 创建一个二叉堆 priority_queue<int,vector<int>,greater<int> > small;//小顶堆 priority_queue<int,vector<int>,less<int> > big;//大顶堆 堆名.push(元素);//插入元素 堆名.pop();//删除堆顶 堆名.top();//返回堆顶 堆名.size();//返回二叉堆的大小 堆名.empty();//如果二叉堆为空返回1,否则返回0
二分模板
int f(int x){ int l=1,r=n,ans=-1; while(l<=r){ int m=(l+r)/2; if(a[m]>x){ r=m-1; } else if(a[m]<x){ l=m+1; } else if(a[m]==x){ ans=m; r=m-1; } } return ans; }
-
通过的题目
- P952
- P955
- P958
- P963
- P965
- P1013
- P1014
- P604
- P1086
- P1093
- P1094
- P1111
- T111
- P2194
- P2375
- P2376
- P2411
- P2412
- P2413
- P2416
- P2417
- P2420
- P2421
- P2424
- P2427
- P2428
- Y21
- P2501
- P2502
- P2503
- P2504
- P2505
- P2506
- P2508
- P2531
- P2535
- P2538
- P2539
- P2566
- P2567
- P2590
- P2599
- P2600
- P2675
- P2737
- P2739
- P2762
- P2763
- P2764
- P2798
- P2799
- P2800
- P2801
-
最近活动
题目标签
- 初窥门径
- 110
- 顺序结构
- 46
- 分支结构
- 35
- 循环结构
- 25
- 略有小成
- 24
- 字符串
- 21
- 二维数组
- 12
- 驾轻就熟
- 10
- GESP三级
- 10
- 其他
- 8
- 循环嵌套
- 8
- 排序
- 8
- GESP
- 7
- 一维数组
- 6
- 搜索
- 6
- 枚举
- 6
- GESP二级
- 6
- 蓝桥杯
- 4
- 计数排序
- 4
- 模拟
- 4