蒟蒻求科普。。
查看原帖
蒟蒻求科普。。
358971
朦胧_XY楼主2022/8/31 12:53

两个代码,一个在 1 后加 ull ,一个不加;

一个ACAC,一个WAWA

不懂就问, ull 的作用是什么啊,求科普。。

AC代码:

#include<iostream>
#define ull unsigned long long
#define N 65
using namespace std;
ull n, m, c, k, ans, vis[N], a, id, p, q;
int main(){
	scanf("%llu%llu%llu%llu", &n, &m, &c, &k);
	for(int i = 1; i <= n; i++){
		scanf("%llu", &a);
		id = 0;
		while(a){
			if(a % 2) vis[id] = 1;
			a >>= 1, id++;
		}
	}
	for(int i = 1; i <= m; i++){
		scanf("%llu%llu", &p, &q);
		if(!vis[p]) k--, vis[p] = 1;
	}
	if(k == 64 && !n) printf("18446744073709551616");
	else ans = (k == 64) ? -n : (1ull << k) - n, printf("%llu", ans);
	return 0;
} 

WA代码:

#include<iostream>
#define ull unsigned long long
#define N 65
using namespace std;
ull n, m, c, k, ans, vis[N], a, id, p, q;
int main(){
	scanf("%llu%llu%llu%llu", &n, &m, &c, &k);
	for(int i = 1; i <= n; i++){
		scanf("%llu", &a);
		id = 0;
		while(a){
			if(a % 2) vis[id] = 1;
			a >>= 1, id++;
		}
	}
	for(int i = 1; i <= m; i++){
		scanf("%llu%llu", &p, &q);
		if(!vis[p]) k--, vis[p] = 1;
	}
	if(k == 64 && !n) printf("18446744073709551616");
	else ans = (k == 64) ? -n : (1 << k) - n, printf("%llu", ans); //问题出在这里
	return 0;
} 
2022/8/31 12:53
加载中...