2 条题解

  • 1
    @ 2025-1-29 11:29:49

    这题本人有数学解法(不是模拟,太麻烦了,而且时间复杂度O(nm),数据大点就超时)

    其实还有一个时间复杂度O(m)的解法,但还是不够快

    ACcode(最快code)

    (复杂度本人也不会算)

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e4+5,INF=0x3f3f3f3f;
    typedef long long LL;
    LL ceil(LL x,LL y){
    	return x/y+(x%y!=0);
    }
    LL j(LL n,LL q){
    	LL d=1,end=(q-1)*n;
    	while(d<=end)d = ceil(q*d,q-1);
    	return q*n+1-d;
    }
    LL n,q;
    int main()
    {
    	cin>>n>>q;
    	cout<<j(n,q);
    	return 0;
    }
    

    有人能帮我算一下吗?(算出来私聊我)

    • -2
      @ 2022-11-17 15:23:24

      太简单了

      #include <iostream>
      using namespace std;
      bool a[1005];
      int main()
      {
      	int n,m,cnt=0,i=0,p=0;
      	cin >> n >> m;
      	while(i=i%n+1){
      //		cout << a[i] << " " << i << " " << cnt << " " << p << endl; 
      		if(cnt==n-1){
      			break;
      		}
      		if(a[i]==false){
      			p++;
      		}
      		if(p==m){
      			p=0;
      			a[i]=true;
      			cnt++;
      		}
      	}
      	for(int i = 1; i <= n; i++){
      		if(a[i]==false){
      			cout << i;
      			return 0;
      		}
      	}
      }
      
      • @ 2025-1-29 11:31:18

        你在输出那里打注释是不是防人抄

    • 1

    信息

    ID
    1028
    时间
    1000ms
    内存
    32MiB
    难度
    7
    标签
    递交数
    253
    已通过
    64
    上传者