朴实无华的总结+题解
2021/5/15 10:27:42
本文主要是介绍朴实无华的总结+题解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021.4.5
Ⅰ.pta-谷歌的招聘
素数的遍历条件可以缩减为:(最后一个测试点)
for(int i=2;i*i<a;i++)
截取字符串中连续子串 substrate()
#include<bits/stdc++.h> using namespace std; int main(){ string s="12345789",s1; int k; cin>>k; for(int i=0;i<9-k;i++){ s1=s.substr(i,k); cout<<s1<<endl; } return 0; } /* 3 123 234 345 457 578 789 */
将int类型的数字转化为字符串
#include<bits/stdc++.h> using namespace std; int main(){ /* char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据。 string:目标字符串的地址。 radix:转换后的进制数,可以是10进制、16进制等。 返回指向string这个字符串的指针 */ int a=99; cout<<"a:"<<a<<endl; char c1[10]; itoa(a,c1,2); cout<<"二进制:"<<c1<<endl; char c2[10]; itoa(a,c2,8); cout<<"八进制:"<<c2<<endl; char c3[10]; itoa(a,c3,10); cout<<"十进制:"<<c3<<endl; char c4[10]; itoa(a,c4,16); cout<<"十六进制:"<<c4<<endl; return 0; } /* a:99 二进制:1100011 八进制:143 十进制:99 十六进制:63 */
字符串转化为任意类型
2021.4.30
Ⅰ.2019,有几个PAT
简单dp,用四个变量分别存储2,20,201,2019的数量,用三个变量分别存储p,pa,pat的数量
//2019 #include<bits/stdc++.h> using namespace std; #define int long long const int N=1e9+7; signed main(){ string s; while(cin>>s){ int a=0,b=0,c=0,d=0; for(int i=0;i<s.size();i++){ if(s[i]=='2') a++; else if(s[i]=='0') b=(a+b)%N; else if(s[i]=='1') c=(c+b)%N; else d=(c+d)%N; } cout<<d%N<<endl; } return 0; }
//PAT #include<bits/stdc++.h> using namespace std; #define int long long const int N=1000000007; signed main() { string s; cin>>s; int a=0,b=0,c=0; for(int i=0;i<s.size();i++){ if(s[i]=='P') a++; else if(s[i]=='A') b=(b+a)%N; else c=(b+c)%N; } cout<<c%N; return 0; }
Ⅱ.奇妙养乐多
暴力寻找每一次的最大值并减去k——O(n)
使用优先队列——O(1)
#include<bits/stdc++.h> using namespace std; const int N = 1e6+10; int a[N]; int main() { int n,m,k; while(cin>>n>>m>>k) { priority_queue<int>heap; memset(a,0,sizeof(a)); for(int i=0;i<n;i++) { cin>>a[i]; heap.push(a[i]); } while(m>0&&heap.size()&&heap.top()>0) { int tops=heap.top(); heap.pop(); tops=tops-k; m--; heap.push(tops); } int tops=heap.top(); if(tops<0) { tops=0; } cout<<tops+1<<endl; } return 0; }
优先队列——priority_queue
O(log n)
大顶堆:
队头元素为最大值
//构造一个空的优先队列(此优先队列默认为大顶堆) priority_queue<int> big_heap; //另一种构建大顶堆的方法 priority_queue<int,vector<int>,less<int> > big_heap2;
小顶堆:
队头元素为最小值
//构造一个空的优先队列,此优先队列是一个小顶堆 priority_queue<int,vector<int>,greater<int> > small_heap;
operator<
Ⅲ.a+b
int,long的范围:
4byte=32bit
signed范围:2^31-1 ~ -2^31即:2147483647 ~ -2147483648
unsigned范围:2^32-1 ~ 0即:4294967295 ~ 0
double的范围:
8 byte = 64 bit
范围:1.79769e+308 ~ 2.22507e-308
double是8字节共64位,其中小数位占52位,float型只能保证6位有效数字,而double型至少可以保证15位有效数字(小数点后的数位),2-^52=2.2204460492503130808472633361816e-16,量级为10^-16,故能够保证2^-15的所有精度。
long long的范围:
最大值:9223372036854775807(>10^18)
最小值:-9223372036854775808
这篇关于朴实无华的总结+题解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)