鱼C论坛

 找回密码
 立即注册
查看: 1501|回复: 7

[已解决]求助,为什么编译不了

[复制链接]
发表于 2023-2-14 21:23:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 贪吃蛇2 于 2023-2-16 19:32 编辑
#include<bits/stdc++.h>
using namespace std;

const int maxn=1e5+10;
int n,k;
char s[maxn];
int e[maxn],is[maxn],ans[maxn];
int cnt[maxn][2],a[maxn][2];//记录字符串情况 
int main(){
        scanf("%d",&n);
        scanf("%s",s+1);
        for(int i=1;i<=n;i++)scanf("%d",&e[i]);
        for(int i=1;i<=n;i++){
                //printf("%c ",s[i]);
                if(s[i]=='G')cnt[i][0]++;
                else cnt[i][1]++;
        }
        //for(int i=1;i<=n;i++)printf("cnt = %d %d\n",cnt[i][0],cnt[i][1]);
        for(int i=1;i<=n;i++){
                a[i][0]=a[i-1][0]+cnt[i][0];
                a[i][1]=a[i-1][1]+cnt[i][1];
        }
        //for(int i=1;i<=n;i++)printf("a = %d %d\n",a[i][0],a[i][1]);
        for(int i=1;i<=n;i++){
                int l=0;
                if(s[i]=='H')l=1;
                if(a[e[i]][l]-a[i-1][l]==a[n][l])is[i]=1;
        }
        //for(int i=1;i<=n;i++)printf("is = %d\n",is[i]);
        for(int i=1;i<=n;i++)ans[i]=ans[i-1]+is[i];
        //for(int i=1;i<=n;i++)printf("ans = %d\n",ans[i]);
        for(int i=1;i<=n;i++)k=k+ans[e[i]]-ans[i];
        k=k+ans[n]*(ans[n]-1)/2;
        printf("%d\n",k);
        return 0;
} 
求指教
最佳答案
2023-2-16 13:10:06
本帖最后由 ExiaGN001 于 2023-2-16 13:32 编辑

有用请设置最佳谢谢
另:希望本版鱼油在提问的时间注意以下几点:
1. 提问尽量不要点将,例如: 小甲鱼来问答下...  XX来回答下... (影响他人回帖积极性)
2. 代码大于20行以上时,最好写清自己的思路和注释,这样回答的人才能尽快给大家答案!(避免扔上一大堆代码,说是有错误,请人指点!)
3. 发代码请务必使用编辑器的“添加代码文字”(这个符号:<>)
(以上是官方说法)


bug类型:
C++语言-语法错误(CE)

具体bug/编译提示:
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
[为保护个人隐私,无关路径已省去] FishC_224470.cpp||In function 'int main()':|
[为保护个人隐私,无关路径已省去] FishC_224470.cpp|10|error: 'amp' was not declared in this scope|
[为保护个人隐私,无关路径已省去] FishC_224470.cpp|10|error: expected ';' before ')' token|
[为保护个人隐私,无关路径已省去] FishC_224470.cpp|12|error: 'i' was not declared in this scope|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|



原因/解释:

所有问题都是因为转义字符&amp;即"&"导致的
将转义字符换回对应一般字符就可以正常编译。

改错完成代码:
#include<bits/stdc++.h>
using namespace std;

const int maxn=1e5+10;
int n,k;
char s[maxn];
int e[maxn],is[maxn],ans[maxn];
int cnt[maxn][2],a[maxn][2];//记录字符串情况
int main(){
        scanf("%d",&n);                                                                //bug发现 处理:将&变成&
        scanf("%s",s+1);
        for(int i=1;i<=n;i++)scanf("%d",&e[i]);                                        //bug发现 处理:将&变成&
        for(int i=1;i<=n;i++){
                //printf("%c ",s[i]);
                if(s[i]=='G')cnt[i][0]++;
                else cnt[i][1]++;
        }
        //for(int i=1;i<=n;i++)printf("cnt = %d %d\n",cnt[i][0],cnt[i][1]);
        for(int i=1;i<=n;i++){
                a[i][0]=a[i-1][0]+cnt[i][0];
                a[i][1]=a[i-1][1]+cnt[i][1];
        }
        //for(int i=1;i<=n;i++)printf("a = %d %d\n",a[i][0],a[i][1]);
        for(int i=1;i<=n;i++){
                int l=0;
                if(s[i]=='H')l=1;
                if(a[e[i]][l]-a[i-1][l]==a[n][l])is[i]=1;
        }
        //for(int i=1;i<=n;i++)printf("is = %d\n",is[i]);
        for(int i=1;i<=n;i++)ans[i]=ans[i-1]+is[i];
        //for(int i=1;i<=n;i++)printf("ans = %d\n",ans[i]);
        for(int i=1;i<=n;i++)k=k+ans[e[i]]-ans[i];
        k=k+ans[n]*(ans[n]-1)/2;
        printf("%d\n",k);
        return 0;
}
有用请设置最佳谢谢
另:希望本版鱼油在提问的时间注意以下几点:
1. 提问尽量不要点将,例如: 小甲鱼来问答下...  XX来回答下... (影响他人回帖积极性)
2. 代码大于20行以上时,最好写清自己的思路和注释,这样回答的人才能尽快给大家答案!(避免扔上一大堆代码,说是有错误,请人指点!)
3. 发代码请务必使用编辑器的“添加代码文字”(这个符号:<>)

评分

参与人数 1荣誉 +3 鱼币 +2 贡献 +3 收起 理由
sfqxx + 3 + 2 + 3 666

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-14 22:14:39 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-2-15 18:09:28 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-2-16 12:12:21 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-2-16 12:14:09 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-2-16 13:10:06 | 显示全部楼层    本楼为最佳答案   
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-2-16 13:21:23 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

 楼主| 发表于 2023-2-16 19:31:31 From FishC Mobile | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表