做网站的具体内容,最低成本做企业网站,10m网站空间,网站开发运营推广叫什么软件原题链接#xff1a;Problem - E - Codeforces
题意#xff1a;给定n#xff0c;要求输出求出符合条件的a和b,要求将n转化为字符串#xff0c;然后a个n相加#xff0c;例如a3#xff0c;n32#xff0c;那么就是323232#xff0c;然后删除后面的b个字符#xff0c;如果…原题链接Problem - E - Codeforces
题意给定n要求输出求出符合条件的a和b,要求将n转化为字符串然后a个n相加例如a3n32那么就是323232然后删除后面的b个字符如果b1那么就是32323这个数记作x。将之前求出x的a和b拿出来计算出ya*n-b。如果x等于y那么这对a和b就是合法的。
思路因为n的最大值是100a的最大值是10000b的最小值是1那么求出来的y最多是999999所以可以得出字符串的长度不会大于6那么就可以把a从1枚举到10000然后枚举b因为字符串的长度是小于等于6的b的范围是[a*n字符串的长度-6a*n字符串的长度-1]判断满足题意的b然后在求出y和x比较就可以了。
//冷静冷静冷静
//调不出来就重构
#pragma GCC optimize(2)
#pragma GCC optimize(O3)
#includebits/stdc.h
#define endl \n
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pairll,ll pii;
const int N1e610,mod998244353;
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll t;cint;while(t--){ll n;cinn;string sto_string(n);ll vs.size();while(s.size()10)ss;setpii op;for(int i1;i10000;i){for(int ji*v-6;ji*v-1;j)//只能留下最多6位的字符串 {if(j1jmin(10000ll,i*n)){ll wi*v-j;string xs.substr(0,w);if(stoi(x)i*n-j){op.insert({i,j});}}}}coutop.size()endl;for(auto cv:op){coutcv.first cv.secondendl;}}return 0;
}