J Extended Twin Composite Number(00:07 +1)
- 签到题
1 |
|
E Potion(00:11 +)
- 维护一个剩余量便可,如果不够了直接输出NO。
1 |
|
A Thanks, TuSimple!(00:31 +)
- 分组排序然后双指针。
1 |
|
G Postman(00:36 +)
- 把正负轴分开讨论,循环节是k,直接算。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using namespace std;
typedef long long ll;
int main(){
int t;
cin>>t;
int n,k;
int x;
vector<int> vz,vf;
while(t--){
vz.clear();vf.clear();
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&x);
if(x>0)vz.push_back(x);
else if(x<0)vf.push_back(-x);
}
sort(vz.begin(),vz.end());
sort(vf.begin(),vf.end());
ll ans=0;
for(int i=vz.size()-1;i>=0;i-=k)ans+=vz[i]*2;
for(int i=vf.size()-1;i>=0;i-=k)ans+=vf[i]*2;
if(vz.size()&&vf.size())ans-=max(vz.back(),vf.back());
else if(vz.size())ans-=vz.back();
else if(vf.size())ans-=vf.back();
cout<<ans<<endl;
}
return 0;
}
B Even Number Theory(00:45 +)
- 猜性质。
1 | import java.math.*; |
C Robot Cleaner I(01:29 +4)
- 暴力模拟,快超时的时候退出。(假题)
1 |
|
D Robot Cleaner II(02:26 +)
- 每次根据周围的不同来改变移动策略。
1 |
|
H Rescue the Princess(03:39 +4)
- 首先缩点,双联通分量;
- 对于得到的森林,进行lca或树链剖分;
- 如果3个点不在同一树上,直接不行;
- 否则根据在联通分量的情况,以及用lca或者线段树来判断是否可行。
1 |
|