社区讨论

数据有误

P3955[NOIP 2017 普及组] 图书管理员参与者 12已保存回复 27

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
27 条
当前快照
1 份
快照标识符
@mi6mgrez
此快照首次捕获于
2025/11/20 07:17
4 个月前
此快照最后确认于
2025/11/20 07:30
4 个月前
查看原帖
没错,还是我,第一题发数据有误的……
题面中说:
#这个需求码也是一个正整数
##应该没有前导0
然而,第三个数据就有前导0
按理论来讲(可能代码有错,但思路没错)
CPP
```cpp
#include<bits/stdc++.h>
using namespace std;
const int maxn=1000+10;
int n,q;
int b[maxn];
int pow10(int x){
    int a=1;
    for(int i=1;i<=x;i++)
        a*=10;
    return a;
}
int pd(int len,int nu){
    int i,j;
    for(i=1;i<=n;i++){
        if(b[i]<nu)
            continue;
        bool flag=1;
        for(j=0;j<len;j++){
            if((b[i]/pow10(j))%10!=(nu/pow10(j)%10)){
                flag=0;
                break;
            }
        }
        if(flag)
            return b[i];
    }
    return -1;
}
int main(){
    int i,len,a;
    scanf("%d%d",&n,&q);
    for(i=1;i<=n;i++)
        scanf("%d",&b[i]);
    sort(b+1,b+n+1);
    for(i=1;i<=q;i++){
        scanf("%d %s",&len,&a);
        printf("%d\n",pd(len,a));
    }
    return 0;
}
```
是对的
然而这只有20分
#个人见解,如果说错了,那就十分对不起,也感谢各位大佬能光顾蒟蒻的讨论与代码

回复

27 条回复,欢迎继续交流。

正在加载回复...