RE小苟蒻求助

P1047 [NOIP2005 普及组] 校门外的树

KvX07 @ 2022-04-13 10:13:01

小苟蒻代码多次修改,略有粗糙,各位大神将就看看吧qwq

#include <iostream>//cin函数
#include <stdio.h>//printf函数
#include <string.h>//memset函数
#include <vector>//vector函数
using namespace std;//等同于使用时std::

int main(){
long long l,m,start,end,left;
long long L=l+1;
left=L;
vector<int>check;//每一个元素代表一棵树
    cin>>l>>m;//同题意
    L=l+1;//总棵树
    left=L;//初始化剩余棵树为总棵数
    //初始化
    for(int i=1;i<=check.size();++i)check[i]=0;
    for(int a=1;a<=m;++a){
        cin>>start>>end;//访问列表的首位和末位
        for(int b=start;b<=end;++b){//遍历首位至末尾
            if(check[b]==0){//再次检查还未访问
                check[b]=1;//check[b]为1,代表已访问
            }
        }
    }
    for(int c=1;c<=L;++c){
        if(check[c]==1)//若该元素状态为已访问
            left-=1;//剩余的棵树减去一
    }
    printf("%lld",left);//统计完毕,输出剩余棵树
    return 0;
}
...

from sys import argv
l,m=argv
state[l]
for i in range(l):
    state[i]=0
for v in range(m):
    start,end=argv
    for l in range(start,end):
        state[l]=1
cnt=0
for x in state:
    if state[x]==0:
        cnt+=1
print(cnt)
打扰各位了,多有不敬,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx谢谢

by Yukinoshita_Yukino @ 2022-04-13 10:16:01

把vector换成数组试试


by FReQuenter @ 2022-04-13 10:29:58

都说了 vector 一开始是没有大小的。。。

vector<int>check 改成 vector<int>check(1005) 试试,相当于把 vector 变成了一个数组。

或者 for(int i=1;i<=check.size();++i)check[i]=0; 改成 for(int i=1;i<=check.size();++i)check.push_back(0);

但还是建议去百度上搜搜关于 vector 的内容。


by FReQuenter @ 2022-04-13 10:31:49

@KvX07 花20min学习一下,自己再打一打:

https://blog.csdn.net/LUSH_BOY/article/details/113486316?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164981705516782184647885%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164981705516782184647885&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-3-113486316.142^v7^pc_search_result_control_group,157^v4^control&utm_term=c+++vector&spm=1018.2226.3001.4187


by KvX07 @ 2022-04-13 11:15:54

还是。。。


by KvX07 @ 2022-04-13 11:16:30


by maple_trees_112 @ 2022-06-25 19:34:30

@KvX07

#include <iostream>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <cstdio>
using namespace std;
int l,m,x,y;
int a[10010],ans;
int main()
{   
    cin>>l>>m;
    for(int i = 1;i <= m;i++)
    {
        cin>>x>>y;
        for(int j = x;j <= y;j++)
        {
            a[j] = 1;
        }
    }
    for(int i = 0;i <= l;i++)
        {
            if(a[i] == 0)
            {
                ans++;
            }
        }
    cout<<ans;
    return 0;
}

by maple_trees_112 @ 2022-06-25 19:38:13

@KvX07 不好意思啊 我只是个只会敲代码的小弱鸡啊 啥意思你自己体会一下


|