- 题解
day03 思路
- @ 2024-10-4 17:02:59
3 2 100 400 905 1405 200
100-400 = -300 905 - (-300) = 1205 5 1 1 2 3 4 5 = 15 2
13
70 150 400 450 575 所有数字之和减去最小值的2倍
取余
%10 结果一定在10以内
long long sum
minm = 10000000;
for(){
cin>>a;
minm = min(minm,a);
sum+=a;
}
sum-=2*minm;
k==1 cout abs(sum)
else cout minm
第二题
字典序最小的字符串
abc 字典序小的
acb
他给的这个字符串 一定能改成 最多有两个地方要改
如果说有2个位置不一样 按字典序小的位置 去改两个位置
decab -> bacab 1个位置不同 不同的两个都要改-> a dacab -> aacaa
没有不同
最边上的不是a的改a
aaaabaaaa
aaaabbaaaa
s = " " + s ; s.substr(1); 1开始用
第三题
3 1 2 3 1 2 1 3
1 2 3 最多是 n-1个
N =2e6
n
a[2e6];
bool flag[2e6],
int prime[2e6],cnt;
void f(){ //质数筛
for(int i=2;i<N;i++){
if(!flag[i]){
prime[++cnt] = i
}
for(int j=1;j<=cnt && iprime[j]<N;j++){
flag[iprime[j]] =1;
if(i%prime[j]==0) break;
}
}
}
f(); for(1~n) a[i]; ans = n-1 u v for(1~n-1){ cin>>u>>v; if(flag[a[u]+a[v]]) ans--; } cout ans;