完全不懂!几乎(×)完全一样的代码,竟然运行速度差那么大,为什么啊
查看原帖
完全不懂!几乎(×)完全一样的代码,竟然运行速度差那么大,为什么啊
370001
Belmaxi楼主2021/11/18 08:53

70pts评测记录
100pts评测记录

70pts代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll nums[101];
vector<ll> v;
ll seed=19260817;
ll n,m;
ll to(string s){
	ll ans(0);
	if(s[0]=='-'){
		for(int i=1;i<s.length();i++){
			ans*=10;
			(ans+=s[i]-'0')%=seed;
		}
		return -ans;
	}
	else{
		for(int i=0;i<s.length();i++){
			ans*=10;
			(ans+=s[i]-'0')%=seed;
		}
		return ans;
	}
}
int main(){
    ios::sync_with_stdio(0);
	cin>>n>>m;
	for(int i=0;i<=n;i++){
	    string s;
	    cin>>s;
		nums[i]=to(s);
		nums[i]%=seed;
	}
	for(ll i=1;i<=m;i++){
		ll x(1),result(nums[0]);
		for(int j=1;j<=n;j++){
			(x*=i)%=seed;
			(result+=nums[j]*x)%=seed;
		}
		if(result==0)
			v.push_back(i);
	}
	cout<<v.size()<<endl;
	for(int i=0;i<v.size();i++) cout<<v[i]<<endl;
	return 0;
} 

100pts代码

#include<bits/stdc++.h>
using namespace std;
#define udm unordered_map
#define mid (l+r>>1)
#define node2 (node<<1)
template<typename type>
bool update(type &todo,const type &standard){
	if(todo<standard){
		todo=standard;
		return 1;
	}
	return 0;
}
template<typename type>
bool downdate(type &todo,const type &standard){
	if(todo>standard){
		todo=standard;
		return 1;
	}
	return 0;
}

const long long mod=19260817;
int n,m;
vector<long long> a,answer;
long long to(string s){
	long long ans(0);
	if(s[0]=='-'){
		for(int i=1;i<s.length();i++){
			ans*=10;
			(ans+=s[i]-'0')%=mod;
		}
		return -ans;
	}
	else{
		for(int i=0;i<s.length();i++){
			ans*=10;
			(ans+=s[i]-'0')%=mod;
		}
		return ans;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin>>n>>m;
	a.resize(n+1);
	for(int i=0;i<=n;i++){
		string s;
		cin>>s;
		a[i]=to(s);
		a[i]%=mod;
	}
	for(int i=1;i<=m;i++){
		long long x(1),result(a[0]);
		for(int j=1;j<=n;j++){
			(x*=i)%=mod;
			(result+=a[j]*x)%=mod;
		}
		if(result==0)
			answer.push_back(i);
	}
	cout<<answer.size()<<endl;
	for(int i=0;i<answer.size();i++)
		cout<<answer[i]<<endl;
	return 0;
}
2021/11/18 08:53
加载中...