【洛谷】B2003 输出第二个整数

本文提供了一个使用C++语言进行标准输入输出操作的基本示例。程序接收三个长整型数值并直接输出第二个数值。该示例适用于初学者了解基本的C++语法和输入输出流的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a;
    long long b;
    long long c;
    cin>>a>>b>>c;
    cout<<b;
}

洛谷 B3968 题目名为“小凯的数字”,这是一道经典的贪心算法题目。下面将为你详细介绍该题目的解法。 ### 题目描述 给定一个长度为 n 的数组 a,对于每个位置 i (1 ≤ i < n),你可以选择交换 ai 和 ai+1 或者不作任何操作。你需要通过若干次这样的操作使得最后形成的序列是一个非递减序列,并求出最小的操作次数。 #### 输入格式 第一行输入整数 T 表示数据组数。 每组测试数据的第一行包含一个正整数 n —— 数列的长度; 第二行有 n 个空格隔开的整数表示这个序列的各项值; #### 输出格式 对于每一组数据输出一行结果,即最少需要多少步可以完成排序任务。 ### 解决方案 这个问题可以用贪心的思想去解决: 我们维护两个指针 `i` 和 `j`, 其中 `i` 是当前正在处理的位置, 而 `j` 则是从当前位置开始往后找第一个比它大的元素所在的位置. 如果存在这样一个更大的元素,则我们将它们互换并更新计数值; 否则就继续向后检查下一个相邻对直到遍历完整个数组. 另外需要注意边界条件以及特殊情况如已经有序的情况等。 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int t; cin >> t; while(t--){ int n, ans = 0; cin >> n; vector<int> v(n); for(int &x : v)cin>>x; // 统计逆序对数目即可作为最终的答案 for(int i=0;i<n-1;i++) if(v[i]>v[i+1])ans++; cout<<ans<<"\n"; } } ``` 上述代码简单易懂地实现了这一思路,并且能够有效地解决问题。希望这对理解此问题有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值