关于某变量名引发的CE求解(马蜂良好)
  • 板块灌水区
  • 楼主ycr_sad
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/10/19 11:27
  • 上次更新2023/11/2 12:53:49
查看原帖
关于某变量名引发的CE求解(马蜂良好)
764676
ycr_sad楼主2023/10/19 11:27

在我们学校OJ,我提交了T1的代码他给我CE了qwq,但是第二次就没有,一样的代码,问问万能的谷民这是为什么(玄关) 题目在这里 Code:

#include <iostream>
#include <cstdio>
using namespace std;
int trie[5000010][5];
long long end[5000010][5];
long long n, k, num, MAX;
string s;
int qaq(char c) {
    switch (c) {
        case 'A':
            return 1;
        case 'G':
            return 2;
        case 'C':
            return 3;
        case 'T':
            return 4;
    }
}
void in(string s) {
    int q = 0, k;
    for (int i = 0; i < s.size(); i++) {
        k = qaq(s[i]);
        if (!trie[q][k])
            trie[q][k] = ++num;
        q = trie[q][k];
    }
    end[q][qaq(s[s.size() - 1])]++;
}
int main() {
    ios::sync_with_stdio(0);
    freopen("dna.in", "r", stdin);
    freopen("dna.out", "w", stdout);
    cin >> s >> k;
    n = s.size() - 1;
    for (int i = 0; i <= n - k + 1; i++) {
        string ss = s.substr(i, k);
        in(ss);
    }
    for (int i = 1; i <= num; i++)
        for (int j = 1; j <= 4; j++) MAX = max(MAX, end[i][j]);
    cout << MAX;
}

错误信息:

/sandbox/1/a.cpp:28:2: error: reference to 'end' is ambiguous
   28 |  end[q][qaq(s[s.size()-1])]++;
      |  ^~~
In file included from /usr/include/c++/10/string:54,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/10/bits/range_access.h:110:37: note: candidates are: 'template<class _Tp> const _Tp* std::end(const std::valarray<_Tp>&)'
  110 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&);
      |                                     ^~~
/usr/include/c++/10/bits/range_access.h:109:31: note:                 'template<class _Tp> _Tp* std::end(std::valarray<_Tp>&)'
  109 |   template<typename _Tp> _Tp* end(valarray<_Tp>&);
      |                               ^~~
/usr/include/c++/10/bits/range_access.h:100:5: note:                 'template<class _Tp, unsigned int _Nm> constexpr _Tp* std::end(_Tp (&)[_Nm])'
  100 |     end(_Tp (&__arr)[_Nm])
      |     ^~~
/usr/include/c++/10/bits/range_access.h:81:5: note:                 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)'
   81 |     end(const _Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/10/bits/range_access.h:71:5: note:                 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)'
   71 |     end(_Container& __cont) -> decltype(__cont.end())
      |     ^~~
In file included from /usr/include/c++/10/bits/range_access.h:36,
                 from /usr/include/c++/10/string:54,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/10/initializer_list:101:5: note:                 'template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)'
  101 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
/sandbox/1/a.cpp:5:11: note:                 'long long int end [5000010][5]'
    5 | long long end[5000010][5];
      |           ^~~
/sandbox/1/a.cpp: In function 'int main()':
/sandbox/1/a.cpp:44:18: error: reference to 'end' is ambiguous
   44 |      MAX=max(MAX,end[i][j]);
      |                  ^~~
In file included from /usr/include/c++/10/string:54,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/10/bits/range_access.h:110:37: note: candidates are: 'template<class _Tp> const _Tp* std::end(const std::valarray<_Tp>&)'
  110 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&);
      |                                     ^~~
/usr/include/c++/10/bits/range_access.h:109:31: note:                 'template<class _Tp> _Tp* std::end(std::valarray<_Tp>&)'
  109 |   template<typename _Tp> _Tp* end(valarray<_Tp>&);
      |                               ^~~
/usr/include/c++/10/bits/range_access.h:100:5: note:                 'template<class _Tp, unsigned int _Nm> constexpr _Tp* std::end(_Tp (&)[_Nm])'
  100 |     end(_Tp (&__arr)[_Nm])
      |     ^~~
/usr/include/c++/10/bits/range_access.h:81:5: note:                 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)'
   81 |     end(const _Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/10/bits/range_access.h:71:5: note:                 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)'
   71 |     end(_Container& __cont) -> decltype(__cont.end())
      |     ^~~
In file included from /usr/include/c++/10/bits/range_access.h:36,
                 from /usr/include/c++/10/string:54,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/10/initializer_list:101:5: note:                 'template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)'
  101 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
/sandbox/1/a.cpp:5:11: note:                 'long long int end [5000010][5]'
    5 | long long end[5000010][5];
      |           ^~~
/sandbox/1/a.cpp: In function 'int qaq(char)':
/sandbox/1/a.cpp:17:1: warning: control reaches end of non-void function [-Wreturn-type]
   17 | }
      | ^
/sandbox/1/a.cpp: In function 'int main()':
/sandbox/1/a.cpp:33:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |  freopen("dna.in","r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~
/sandbox/1/a.cpp:34:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |  freopen("dna.out","w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
2023/10/19 11:27
加载中...