考试95,改后200
增量幻境
考试90,忘记特判0
#include<bits/stdc++.h>
using namespace std;
string s;
int a[100002],b[100002],p;
int main(){
freopen("increase.in","r",stdin);
freopen("increase.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>s;
for(int i=1;i<=s.size();i++){
a[i]=s[i-1]-'0';
}
for(int i=1;i<=s.size();i++){
if(a[i-1]>a[i]){
int k=i-2;
while(a[k]==a[i-1]){
k--;
}
k++;
b[k]--;
int q=1;
if(b[1]==0){
q=2;
}
for(int j=q;j<=s.size();j++){
if(j>k){
cout<<9;
}
else{
cout<<b[j];
}
}
return 0;
}
else{
b[i]=a[i];
}
}
for(int i=1;i<=s.size();i++){
cout<<b[i];
}
return 0;
}
逃离遗迹
Floyed寄了
正解DFS/BFS
阶乘计算
数学问题
#include<bits/stdc++.h>
using namespace std;
long long n,k,ans=1e18,p[1000002],q[1000002],js=1;
int main(){
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>k;
if(n==0||n==1){
cout<<0;
return 0;
}
for(int i=2;i*i<=k;i++){
if(k%i==0){
p[js]=i;
while(k%i==0){
k/=i;
q[js]++;
}
js++;
}
}
if(k!=1){
p[js]=k;
q[js]=1;
}
else{
js--;
}
for(int i=1;i<=js;i++){
long long d=0;
for(long long j=p[i];j<=n;j*=p[i]){
d+=(n/j);
}
ans=min(ans,d/q[i]);
}
cout<<ans;
return 0;
}
奔山赴海
总结
寄の一天