题解 CF39B 【Company Income Growth】

这里给一个不用数组的解法

首先这道题如果的样例的第一行如果不用输出的确不用数组,但既然要先输出个数,再输出答案,貌似不可能?

但STL是你无法想象的!

他就是:

stringstream

每次成功匹配就把答案塞到stringstream里,最后输出就好了

代码:

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
    ios::sync_with_stdio(false); //加速
    int now = 1, n, y;
    stringstream ans; //定义
    //ans.precision(0); 可要可不要
    cin >> n;
    y = n;
    while(n--)
    {
        int x;
        cin >> x;
        if(x == now && now++) //这里注意,c++中逻辑与是先判断第一个,如果为false就不判断了,所以这里为了压行是可以的
        {
            ans << y - n + 2000; //把答案放入缓存区
            ans << " "; //空格也放进去
        }
    }
    cout << now - 1 << endl << ans.str() << endl; //输出,将stringstream转为string
    return 0;
}

这种做法的时间直接降到了692ms,属实好用!

stringstream的常数并不是很大

posted @   HappyBobb  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示