为什么我连样例都没过却满分了?
  • 板块题目总版
  • 楼主HamsterYDS
  • 当前回复9
  • 已保存回复9
  • 发布时间2020/10/5 14:47
  • 上次更新2023/11/5 11:57:04
查看原帖
为什么我连样例都没过却满分了?
111001
HamsterYDS楼主2020/10/5 14:47

RT https://www.luogu.com.cn/problem/U129453 第五个样例没过,输出2097152 但是却AC了 https://www.luogu.com.cn/record/39302784 求大佬们看看哪里有问题

#include<bits/stdc++.h>
using namespace std;
long long n,k,ans;
map<long long,long long> tmp;
long long dfs(long long length){
	int size=tmp.size();
	tmp.insert(pair<long long,long long>(length,1));
	if(tmp.size()==size){
		return tmp.find(length)->second;
	}else{
		tmp.erase(length);
		if(length<2*k+2){
      		return 1;
   		}else{
    		long long k=dfs(ceil(length/2))+dfs(length-ceil(length/2));
    		tmp.insert(pair<long long,long long>(length,k));
        	return k;
    	}
	}
    
}
int main(){
    scanf("%ld %ld", &n, &k);
    if(k==0){
    	printf("%ld",n);
    	return 0;
	}
    ans=dfs(n);
    printf("%ld",ans);
    return 0;
}
2020/10/5 14:47
加载中...