为啥这样会CE
#include<bits/stdc++.h>using namespace std;
string s;
int hs;
int pwp;
const int mod=1e9+7;
void init(string s,int j)
{
pwp=1;
for(int i=s.size()-1;i>0;++i)
{
hs+=pwp*(s-'0')%mod;
if(pwp==0)
{
pwp=pwp*131%mod;
}
}
}
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
scanf("%s",s);
init(s,i);
}
sort(hs+1,hs+n+1);
int ans=0;
for(int i=1;i<n;++i)
{
if(hs!=hs)
{
ans++;
}
}
cout<<ans;
return 0;
}
为什么不能读完输入就强制结束了
交到洛谷上会CE
@FishC @FishC @FishC
Gordon1 发表于 2024-11-01 20:49
@FishC
好的,我会遵循这些指示。如果你有任何代码相关的问题或者需要帮助,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 Gordon1 发表于 2024-11-01 20:51
@FishC
好的,请问有什么我可以帮助解答的问题吗?
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-11-1 21:04
好的,请问有什么我可以帮助解答的问题吗?
以上回复来自 FishC AI 小助理,如未能正确解答您的问题 ...
看楼主问题 Gordon1 发表于 2024-11-01 20:51
@FishC
好的,我会遵循这些指示。如果你有任何代码相关的问题或者需要帮助,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 Gordon1 发表于 2024-11-01 21:26
看楼主问题
看起来你在处理一个C++程序时遇到了编译错误(CE)。从你提供的代码片段来看,可能有以下几个问题导致编译错误:
1. **缺少头文件**:`#include`后面应该指定具体的头文件,比如`#include <iostream>`。
2. **字符串索引错误**:在`init`函数中,`s-'0'`应该是`s-'0'`,因为你需要访问字符串的具体字符。
3. **`pwp`的更新条件错误**:`if(pwp==0)`的条件可能不正确,应该是`if(pwp!=0)`,因为`pwp`初始化为1。
4. **`main`函数不完整**:`for`循环没有结束,缺少大括号和循环体。
以下是修正后的代码示例:
#include <iostream>
using namespace std;
string s;
int hs;
int pwp;
const int mod = 1e9 + 7;
void init(string s, int j) {
pwp = 1;
for (int i = s.size() - 1; i >= 0; --i) {
hs = (hs + pwp * (s - '0')) % mod;
pwp = pwp * 131 % mod;
}
}
int n;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
// 这里可以添加具体的逻辑
}
return 0;
}
请根据你的具体需求调整代码逻辑。如果还有其他问题,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-11-1 22:00
看起来你在处理一个C++程序时遇到了编译错误(CE)。从你提供的代码片段来看,可能有以下几个问题导致 ...
#include<bits/stdc++.h>
using namespace std;
char s;
int hs;
int pwp;
const int mod=1e9+7;
int init(string s)
{
int h=0;
for(int i=s.size()-1;i>0;++i)
{
h+=pwp*(s-'0')%mod;
h%=mod;
}
return h;
}
int n;
int main()
{
cin>>n;
pwp=1;
for(int i=1;i<=1000;++i)
{
pwp=(pwp*131)%mod;
}
for(int i=1;i<=n;++i)
{
scanf("%s",s);
hs=init(s);
}
sort(hs+1,hs+n+1);
int ans=0;
for(int i=1;i<n;++i)
{
if(hs!=hs)
{
ans++;
}
}
cout<<ans;
return 0;
}
是TLE,没法输入所有数据 Gordon1 发表于 2024-11-03 09:34
#include
using namespace std;
char s;
int hs;
...
看起来你在处理一个C++程序时遇到了编译错误(CE)。从你提供的代码片段来看,可能有以下几个问题导致编译错误:
1. **缺少头文件**:`#include`后面应该指定具体的头文件,比如`#include <iostream>`。
2. **字符变量声明错误**:`char s;`应该是`string s;`,因为你在`init`函数中使用了`string`类型。
3. **字符串索引错误**:在`init`函数中,`s-'0'`应该是`s-'0'`,因为你需要访问字符串的具体字符。
4. **`for`循环不完整**:`for`循环没有结束,缺少大括号和循环体。
以下是修正后的代码示例:
#include <iostream>
using namespace std;
string s;
int hs;
int pwp;
const int mod = 1e9 + 7;
int init(string s) {
int h = 0;
for (int i = s.size() - 1; i >= 0; --i) {
h = (h + pwp * (s - '0')) % mod;
pwp = pwp * 131 % mod;
}
return h;
}
int n;
int main() {
cin >> n;
pwp = 1;
for (int i = 1; i <= n; ++i) {
cin >> s;
hs = init(s);
cout << hs << endl;
}
return 0;
}
请根据你的具体需求进行调整。希望这能帮助你解决编译错误的问题!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]