好家伙调库超时,手写也超时,,我承认我是个废物....
不转型的话是50ms,,,,写个转型来判断就炸...........
#include<bits/stdc++.h>
using namespace std;
int main(void) {
string arr = "123456789";
int target, n = 0, num[3];
cin >> target;
do {
for (int index1 = 1; index1 < 7; index1++) {
for (int index2 = index1 + 1; index2 < 8; index2++) {
num[0] = stoi(arr.substr(0, index1));
num[1] = stoi(arr.substr(index1, index2));
num[2] = stoi(arr.substr(index2, 8));
if(num[1] % num[2] == 0 && num num[0] = num[1] / num[2] == target)
n ++;
}
}
} while (next_permutation(arr.begin(), arr.end()));
cout << n;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int arrtoint(vector<int>::iterator b,vector<int>::iterator e){
int ans;
while(b != e){
n++;
ans += ans * 10 + *b;
b++;
}
return ans;
}
int main(void) {
vector<int>arr{1,2,3,4,5,6,7,8,9},path;
int target, n = 0, num[3];
cin >> target;
do {
for (int index1 = 1; index1 < 7; index1++) {
for (int index2 = index1 + 1; index2 < 8; index2++) {
num[0] = arrtoint(arr.begin(),arr.begin() + index1);
num[1] = arrtoint(arr.begin() + index1,arr.begin() + index2);
num[2] = arrtoint(arr.begin() + index2,arr.end());
if(num[1] % num[2] == 0 && num num[0] = num[1] / num[2] == target)
n ++;
}
}
} while (next_permutation(arr.begin(), arr.end()));
cout << n;
return 0;
}