A. TubeTube Feed
题目大意
待补充
解题思路
待补充
具体代码
#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int a[N],b[N];
int main()
{
int T;
cin>>T;
while(T--)
{
int n,t;
cin>>n>>t;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
int idx = -1,tmp = 0;
for(int i=1;i<=n;i++)
if(t-i+1>=a[i]&&b[i]>tmp)
{
idx = i;
tmp = b[i];
}
cout<<idx<<endl;
}
return 0;
}
B. Karina and Array
题目大意
待补充
解题思路
待补充
具体代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
vector<LL> a,b;
for(int i=1;i<=n;i++)
{
LL x;
cin>>x;
if(x>=0) a.push_back(x);
else b.push_back(x);
}
sort(a.begin(),a.end());
sort(b.begin(),b.end());
LL ans = -0x3f3f3f3f3f3f3f3f;
int len_a = a.size(),len_b = b.size();
if(len_a>1) ans = max(ans,max(a[0]*a[1],a[len_a-1] * a[len_a-2]));
if(len_a>=1&&len_b>=1)
{
ans = max(ans,a[0] * b[0]);
ans = max(ans,a[0] * b.back());
ans = max(ans,a.back() * b[0]);
ans = max(ans,a.back() * b.back());
}
if(len_b>1) ans = max(ans,max(b[len_b-1]*b[len_b-2],b[0]*b[1]));
cout<<ans<<endl;
}
return 0;
}
C. Bun Lover
题目大意
待补充
解题思路
待补充
具体代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
long long n;
cin>>n;
cout<<n*n+2*n+2<<endl;
}
return 0;
}
D. Super-Permutation
题目大意
待补充
解题思路
待补充
具体代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
if(n&1&&n!=1) puts("-1");
else if(n==1) puts("1");
else
{
for(int i=n;i>=1;i-=2) cout<<i<<" "<<n-i+1<<" ";
puts("");
}
}
return 0;
}
E. Making Anti-Palindromes
题目大意
待补充
解题思路
待补充
具体代码
待补充
F. Gardening Friends
题目大意
待补充
解题思路
待补充
具体代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 2e5 + 10;
int n,k,c;
vector<int> e[N];
int d[N],md1[N],md2[N];
int x,y,ver;
void dfs(int u,int fa,int *d)
{
for(auto i:e[u])
{
if(i==fa) continue;
d[i] = d[u] + 1;
if(d[i]>d[ver]) ver = i;
dfs(i,u,d);
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n>>k>>c;
for(int i=1;i<n;i++)
{
int a,b;
cin>>a>>b;
e[a].push_back(b);
e[b].push_back(a);
}
d[1] = 0,ver = 0;
dfs(1,0,d);
x = ver,md1[ver] = 0;
dfs(ver,0,md1);
y = ver,md2[ver] = 0;
dfs(ver,0,md2);
LL ans = 0;
for(int i=1;i<=n;i++) ans = max(ans,(LL)max(md1[i],md2[i])*k-(LL)d[i]*c);
cout<<ans<<endl;
for(int i=1;i<=n;i++) e[i].clear();
}
return 0;
}