如何AC一道题目:C++手动开O2

本文介绍了在C/C++编程竞赛中如何使用GCC优化指令提高程序效率,包括O2、O3及Ofast等不同级别的优化策略,适用于从省选到国际级比赛。

在你的代码中加入下面这句话:

#pragma GCC optimize(2)

O2是C/C++的一种编译优化,可以起到优化程序的作用。在NOIP竞赛中一般不允许使用,而在省选以上级别的比赛中一般可以使用。
如果还没AC,则加入下面2句话:

#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#P5755. [CCC 2025 Junior] Connecting Territories ID: 7936 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: root 题目描述 Ava 正在一个由格子组成的网格上玩策略游戏。每个格子都有一个对应的花费。当从左到右逐行读取格子的花费时,会呈现一个由前 M M 个正整数按递增顺序重复组成的模式: 1 , 2 , 3 , … , M , 1 , 2 , 3 , … , M , 1 , 2 , 3 , … 1,2,3,…,M,1,2,3,…,M,1,2,3,…。在这个模式中, M M 表示格子的最大花费。在示例网格中, M M 等于 5 5。 Ava 需要在每一行购买一个格子,以构建一条从上领地(第一行格子上方)通往下领地(最后一行格子下方)的连通路径。第一个购买的格子必须在第一行。随后购买的每个格子必须与上一个购买的格子共享一条边或一个角。在示例网格中,Ava 的连通路径总花费为 9 9。 给定一个格子网格,你的任务是确定从上领地到下领地的连通路径的最小花费。 输入格式 第一行输入一个正整数 R R,表示网格的行数, R ≤ 20   000 R≤20000。 第二行输入一个正整数 C C,表示网格的列数, C ≤ 20   000 C≤20000。 第三行输入一个正整数 M M( M ≤ 100   000 M≤100000),表示格子的最大花费。 输出格式 输出一个正整数 P P,表示连通路径的最小花费。 输入数据 1 3 5 7 输出数据 1 6 每个格子的花费如图所示。Ava 应购买的格子序列(绿色高亮部分)使得连通路径的花费最小。 #include<bits/stdc++.h> using namespace std; int r,c,m,dp[2][20005],t,minn=1e9; int main(){ cin>>r>>c>>m; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ t++; if(t>m) t=1; if(j==1) dp[1][j]=min(dp[0][j],dp[0][j+1]); else if(j==c) dp[1][j]=min(dp[0][j],dp[0][j-1]); else dp[1][j]=min(dp[0][j],min(dp[0][j-1],dp[0][j+1])); dp[1][j]+=t; if(i==r) minn=min(minn,dp[1][j]); } for(int j=1;j<=c;j++){ dp[0][j]=dp[1][j]; } } cout<<minn; return 0; } 75 Time Exceeded # 状态分数 耗时 内存占用 #1 Accepted25 #1-1 Accepted 2ms 388 KiB #1-2 Accepted 2ms 320 KiB #1-3 Accepted 2ms 408 KiB #1-4 Accepted 1ms 320 KiB #2 Accepted25 #2-1 Accepted 2ms 324 KiB #2-2 Accepted 2ms 360 KiB #2-3 Accepted 2ms 360 KiB #2-4 Accepted 2ms 404 KiB #3 Accepted25 #3-1 Accepted 2ms 408 KiB #3-2 Accepted 2ms 336 KiB #3-3 Accepted 2ms 324 KiB #4 Time Exceeded0 #4-1 Time Exceeded ≥1063ms ≥448 KiB #4-2 Time Exceeded ≥1054ms ≥448 KiB
10-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值