2 条题解

  • 0
    @ 2025-6-14 20:33:52

    题目比较复杂(-v-but还是被朕解出来了吧!jie'jie'jie),这道题要用到高精和冥的循环,然后就好算了~~~

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    ll fpw(ll b,ll n,ll k){
    int ans = 1;
    b = b%k;
    while (n>0){
    if(n%2==1)ans=(ans*b)%k;
    n/=2;
    b=(b*b)%k;
    }
    return ans;
    }
    signed main(){
    ll b,c;
    string p;
    cin >>b;
    int a[1001]={},res[1001];
    for(int i= 1;i<=500;i++)a[i]=fpw(2011,i,10000);
    for(int i =1;i<=b;i++){
    int a1[1001]={},rem=0;
    cin >>p;
    int lena = p.size();
    for (int i = 0; i < lena; i++)a1[i] = p[i] - 48;
    for (int i = 0; i < lena; i++)
    {
    res[i] = (rem * 10 + a1[i]) / 500;
    rem = (rem * 10 + a1[i]) % 500;
    }
    //哦cout << rem<<" ";
    if(rem>0)cout << a[rem]<<endl;
    else cout << a[5]<<endl;
    }
    //for(int i= 99;i<=500;i++)cout<<a[i]<<".";
    }
    
    • 0
      @ 2025-6-13 22:12:44

      以下代码绝对不对,AC不了

      #include<bits/stdc++.h>
      using namespace std;
      #define ll long long 
      ll fpw(ll b,ll p,ll k){
      	int ans = 1;
      	b = b%k;
      	while (p>0){
      		if(p%2==1)ans=(ans*b)%k;
      		p/=2;
      		b=(b*b)%k;
      	}
      	return ans;
      }
      
      signed main(){
      	ll b,c,rem;
      	string p;
      	cin >>b;
      	int a[1001]={},a1[1001]={},res[1001];
      	for(int i= 1;i<=837;i++)a[i]=fpw(2011,i,10000);
      	for(int i =1;i<=b;i++){
      		cin >>p;
      		int lena = p.size();
      		for (int i = 0; i < lena; i++)a1[i] = p[i] - '0';    
      		for (int i = 0; i < lena; i++)
      		{
      			res[i] = (rem * 10 + a1[i]) / 837;
      			rem = (rem * 10 + a1[i]) % 837;    
      		}
      		//哦cout << rem<<" ";
      		if(rem!=0)cout << a[rem]<<endl;
      		else cout << a[837]<<endl;
      	}
      }
      

      不过居然被我弄成随机数代码了。。。 啊哈,你们什么都没看见............

      • 1

      信息

      ID
      224
      时间
      1000ms
      内存
      128MiB
      难度
      9
      标签
      (无)
      递交数
      29
      已通过
      2
      上传者