第二篇题解是不是错了啊quq

P3955 [NOIP2017 普及组] 图书管理员

蒟蒻小嘤 @ 2019-04-07 15:10:02

事实证明,第二篇题解的代码错了哎awa

(害我把代码改的错了又错qwq)

话说这里能不能推荐音乐?

P3955题解

评测状态

Unaccepted 20

用时: 14ms / 内存: 916KB

测试点信息

1

RE

2

RE

3

AC 3ms/812KB

4

AC 4ms/916KB

5

WA

6

WA

7

RE

8

RE

9

RE

10

RE

源代码:

#include<bits/stdc++.h>
using namespace std;
int m[8]={1,10,100,1000,10000,100000,1000000,10000000};//传说中的m数组,需要多长的,直接带入下标即可。
int n,q;
int b[1005];//记录图书
int main(){
    scanf("%d%d",&n,&q);
    for(int i=0;i<n;i++){
        scanf("%d",&b[i]);
    }
    sort(b,b+n);//排序
    while(q--){
        int l,n;
        scanf("%d%d",&l,&n);
        int a=-1;      //初始值设置为-1
        for(int i=0;i<n;i++){
            int g=b[i]%m[l];  //直接带入对应的截取长度,这就是m的好处
            if(g==n){
                a=b[i];
                break;         //注意break
            }
        }
        printf("%d\n",a);
    }
    return 0;
}
//测试~~~

嘤嘤嘤~~~QAQ

END


by 墨笙_Mooos @ 2019-04-07 15:54:51

n重复定义了


by 墨笙_Mooos @ 2019-04-07 15:55:44

4行和13行都有一个n


by 墨笙_Mooos @ 2019-04-07 15:56:00

@羊村你喜哥


by 蒟蒻小嘤 @ 2019-04-07 17:22:11

好像并没有什么区别awa

依然20分……

qwq

#include<bits/stdc++.h>
using namespace std;
int m[8]={1,10,100,1000,10000,100000,1000000,10000000};//传说中的m数组,需要多长的,直接带入下标即可。
int p,q;
int b[1005];//记录图书
int main(){
    scanf("%d%d",&p,&q);
    for(int i=0;i<p;i++){
        scanf("%d",&b[i]);
    }
    sort(b,b+p);//排序
    while(q--){
        int l,n;
        scanf("%d%d",&l,&n);
        int a=-1;      //初始值设置为-1
        for(int i=0;i<n;i++){
            int g=b[i]%m[l];  //直接带入对应的截取长度,这就是m的好处
            if(g==n){
                a=b[i];
                break;         //注意break
            }
        }
        printf("%d\n",a);
    }
    return 0;
}
//测试~~~

by C_hzh @ 2019-04-10 13:00:28

while和for的二重循环出现了错误,有一些值会出现错误。


|