听灌多
  • 板块灌水区
  • 楼主LiAomiao
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/17 11:33
  • 上次更新2024/7/17 13:29:08
查看原帖
听灌多
1294779
LiAomiao楼主2024/7/17 11:33

求助,骗了20分,后来又得了60分,怎么写啊?

程序一:

#include<bits/stdc++.h>

using namespace std;

int main(){

	int n,k;
   cin>>n>>k;
   
	cout<<pow(2,k);
    
	return 0;
}

程序二:

#include<bits/stdc++.h>

using namespace std;

char n='0';

long long a[400];

long long x[150],y[150];

inline void read(__int128& a){
	__int128 s = 0, w = 1;
    
	char ch = getchar();
    
	while (ch < '0' || ch>'9'){
    
		if (ch == '-')
        
			w = -1;
            
		ch = getchar();
        
	}
    
	while (ch >= '0' && ch <= '9'){
    
		s = s * 10 + ch - '0';
        
		ch = getchar();
        
	}
    
	a = s * w;
    
}

void write1(__int128 x)

{

    if(x<0)
    
        putchar('-'),x=-x;
        
    if(x>9)
    
        write1(x/10);
        
    putchar(x%10+'0');
    
    return;
    
}

int main()

{

	__int128 ans=1,cnt=0,cnt2=0;
    
	long long i=1;
    
	read(cnt);
    
	while(cnt!=0)
    
	{
    
		cnt2+=cnt%10;
        
		cnt2*=10;
        
		cnt-=cnt%10;
        
		cnt/=10;
        
	}
    
	cnt2/=10;
    
	while(cnt2!=0)
    
	{
    
		a[i]=cnt2%10;
        
		//cout<<a[i]<<"\n";
        
		i++;
        
		cnt2-=cnt2%10;
        
		cnt2/=10;
        
	}
    
	long long k;
    
	cin>>k;
    
	for(i=1;i<=k;i++)
    
	{
    
		cin>>x[i]>>y[i];
        
	}
    
	long long b[400];
    
	for(i=1;i<=400;i++)
    
	{
    
		b[i]=1;
        
	}
    
	for(i=1;i<=400;i++)
    
	{
    
		bool c[11]={0};c[a[i]]=1;
        
		for(long long j=1;j<=k;j++)
        
		{
        
			for(long long l=0;l<=10;l++)
            
			{
            
			//cout<<i<<" "<<j<<" "<<l<<\n";
            
				if(c[l]==1&&l==x[j])
                
				{
                
					if(c[y[j]]==0)b[i]++;
                    
					c[y[j]]=1;
                    
				}
			}
		}
	}
	for(i=1;i<=400;i++)
	{
		//if(b[i]!=1)cout<<b[i]<<"\n";
		ans*=b[i];
	}
	write1(ans);
	return 0;
}
2024/7/17 11:33
加载中...