一、Ox优化
Ox(x取123)主要是对代码大小的优化,我们基本不用做更多的关心。
通常各种优化都会打乱程序的结构,让调试工作变得无从着手。
并且会打乱执行顺序,依赖内存操作顺序的程序需要做相关处理才能确保程序的正确性。
二、具体优化内容
-O0: 不做任何优化,这是默认的编译选项。
-O2优化能使程序的编译效率大大提升,从而减少程序的运行时间,达到优化的效果。
三、O2优化具体代码
#pragma GCC optimize(1) #pragma GCC optimize(2) #pragma GCC optimize(3,"Ofast","inline")
讯享网
以上内容来自Code92007
个人主页传送门
原博客传送门
四、具体应用
讯享网#include<bits/stdc++.h> using namespace std; int main() {
int a[500]={
0},m,s,n,i,j,l,t,st,en; cin>>m>>s>>n; en=0,st=s; for(i=1;i<=n;i++) {
cin>>t; a[t]=1; if(t<st) st=t; if(t>en) en=t; } int tmp=1,c[500]={
0}; for(i=st;i<=en;i++) {
if(a[i]==1&&i!=en) {
j=i+1; while(a[j]==0&&j<=en) {
c[tmp]++; j++; } tmp++; } } tmp--; sort(c+1,c+tmp+1); l=en-st+1; for(i=tmp;i>=tmp-m+2;i--) {
l=l-c[i]; } cout<<l; return 0; }

加入O2优化
#pragma GCC optimize(1) #pragma GCC optimize(2) #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc++.h> using namespace std; int main() {
int a[500]={
0},m,s,n,i,j,l,t,st,en; cin>>m>>s>>n; en=0,st=s; for(i=1;i<=n;i++) {
cin>>t; a[t]=1; if(t<st) st=t; if(t>en) en=t; } int tmp=1,c[500]={
0}; for(i=st;i<=en;i++) {
if(a[i]==1&&i!=en) {
j=i+1; while(a[j]==0&&j<=en) {
c[tmp]++; j++; } tmp++; } } tmp--; sort(c+1,c+tmp+1); l=en-st+1; for(i=tmp;i>=tmp-m+2;i--) {
l=l-c[i]; } cout<<l; return 0; }

五、详细了解
传送门

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/28768.html