各位大佬,鄙人基算1,斗胆问几个问题......

如何在输入超时时使程序继续运行???
如何使输入禁止屏显?
如何计算时间?
如何使程序出现颜色的设定?
sytem 的具体用法?

2 个赞

关于这个问题,可以计算时间复杂度,1s大约可以运行O(1e8)

1 个赞

非常谢谢,但我想问的是如何在程序运行时计算具体时间。

3 个赞

先看循环,每一层循环是O(/*数据范围*/),两层循环是O( 数据范围^2 )

1 个赞

等我

1 个赞

比如以下代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            cout<<i<<" "<<j<<endl;
    for(int i=1;i<=n;i++) cout<<i<<" ";
}

时间复杂度为——
先看第一个循环,是二重循环,范围为n,时间复杂度为 O(n^2)
再看第二个循环,是一重循环,范围为n,时间复杂度为 O(n)
加起来为:
O(n^2+n)

1 个赞

测量实际运行时间吗

1 个赞

还有,二分算法是 O( \log_2 n)

1 个赞

对。

1 个赞

chrono::

1 个赞

是system吧

1 个赞

正确的

1 个赞

你说chrono头文件?

1 个赞

yep

1 个赞
#include <bits/stdc++.h>
#pragma optimize(2)
using namespace std;
int main()
{
    chrono::time_point t1 = chrono::steady_clock::now();
    for (int i = 0; i < INT_MAX / 4; i++)
        ;
    chrono::time_point t2 = chrono::steady_clock::now();
    chrono::duration<double, ratio<1, 1000>> dt = t2 - t1;
    cout << dt.count();
    return 0;
}
1 个赞

那是freopen吗

1 个赞

是输出时有颜色,还是你写的代码有颜色?

1 个赞

谢谢大佬!!! 是输出。不过事先声明:鄙人只是基础算法1的小学士,好高骛远,想造个游戏,AI给的教程不懂,才来劳烦各位大佬。能不能具体讲一讲?这里先谢过了。(旧瓶装新酒,同梗请勿喷,代码过简陋,千前不敢发)

2 个赞

我的做法:“\e[38;2;r;g;bm”

1 个赞

其实基本上除了比较难得游戏,其他游戏和算法都没关系,只要懂语法就行(比如我,在我gesp2级都没过的时候用Python克隆了一个MC)