问题出在哪里了呢

P2256 一中校运会之百米跑

函数$\operatorname{findfor}$的时间复杂度是O(n)的,稍微有点大,可以使用STL的map解决,或者写个哈希取模到能开数组的大小,或者采用Trie。其时间复杂度为后者最优,中者次之,第一最慢,不过STL里还有个容器叫hash_map,是基于哈希的一个容器,不过他不在c++语言标准中,有的比赛可能用不到。但幸运的是,对于这道题来说,使用map就足够了
by wan123 @ 2021-07-14 06:32:44


@[芝麻馅儿汤圆](/user/53141) 我们来看代码: ```cpp for (int i = 1; i <= M; i++) ``` ```cpp int M, N; ``` ```cpp cin >> M >> N; ``` ```cpp cin >> M; for(int i = 1; i <= M; i++) ``` 这四处代码表现了一个问题:您将变量 M 使用了两次,导致函数 ``` findfor``` 使用了多次不同数值的 M ,所以出错。 建议加变量 K ,区分 M 和 K 的数值区别。 ```cpp int M, N, K; ``` ```cpp for (int i = 1; i <= M; i++) ``` ```cpp cin >> K; for(int i = 1; i <= K; i++) ```
by Hellen68 @ 2021-07-31 21:47:40


|