AtCoder Beginner Contest 361 A->F题解

  A

  没啥好说的

int n, k, A[N], x;
void solve()
{
  cin >> n >> k >> x;
  for (int i = 1; i <= n; i++)
    cin >> A[i];
  for (int i = 1; i <= k; i++)
  {
    cout << A[i] << " ";
  }
  cout << x << " ";
  for (int i = k + 1; i <= n; i++)
  {
    cout << A[i] << " ";
  }
}

B

 没开出来,阴间

int a, b, c, d, e, f;
int g, h, i, j, k, l;
bool check(int a, int b, int c, int d)
{
  return max(a, c) < min(b, d);
}
void solve()
{
  cin >> a >> b >> c >> d >> e >> f >> g >> h >> i >> j >> k >> l;
  if (check(a, d, g, j) && check(b, e, h, k) && check(c, f, i, l))
  {
    cout << "Yes";
  }
  else
    cout << "No";
}

C

 排序+双指针

LL n, k, A[N];
void solve()
{
  cin >> n >> k;
  for (int i = 1; i <= n; i++)
    cin >> A[i];
  sort(A + 1, A + n + 1);
  LL ans = 1e18;
  for (int i = 1, j = n - k; i <= k+1; i++,j++)
  {
    // cout << A[i] << "  " << A[j] << endl;
    ans = min(ans, A[j] - A[i]);
  }
  cout << ans;
}

 D

 和八数码一样,bfs+map剪枝

int n;
string s, t;
struct w
{
  string a;
  int b;
};
void solve()
{
  cin >> n;
  cin >> s >> t;
  map<string, int> D;
  D[s] = 1;
  string a = "--";
  s = s + a;
  queue<w> DD;
  DD.push({s, 0});
  while (!DD.empty())
  {
    w f = DD.front();
    DD.pop();
    string qq = f.a.substr(0, n);
    // cout << f.a << endl;
    if (qq == t)
    {
      cout << f.b;
      return;
    }
    int st = 0;
    for (int i = 0; i < n + 1; i++)
    {
      if (f.a[i] == '-')
      {
        st = i;
        break;
      }
    }
    for (int i = 0; i < n + 1; i++)
    {
      if (f.a[i] == '-' || f.a[i + 1] == '-')
        continue;
      string g = f.a;
      g[i] = '-', g[i + 1] = '-';
      // cout << g << endl;
      g[st] = f.a[i], g[st + 1] = f.a[i + 1];
      if (D[g])
        continue;
      // cout << f.a << "     " << g << "   " << i << "   " << st << endl;
      D[g] = 1;
      DD.push({g, f.b + 1});
    }
  }
  cout << "-1";
}

 E

  容易想到就是所有路都走俩边,可以选择一条为主路就走一遍,就是2*路长-树的直径

#define int long long
int n, u, v, ans = -1, w, ru[N];
vector<pair<int, int>> A[N];
int dfs(int x, int fa)
{
  int d1 = 0, d2 = 0;
  for (auto y : A[x])
  {
    if (y.first == fa)
      continue;
    int d = dfs(y.first, x) + y.second;
    if (d >= d1)
    {
      d2 = d1, d1 = d;
    }
    else if (d > d2)
    {
      d2 = d;
    }
  }
  ans = max(ans, d1 + d2);
  return d1;
}
void solve()
{
  cin >> n;
  LL num = 0;
  for (int i = 1; i < n; i++)
  {
    cin >> u >> v >> w;
    A[u].push_back({v, w});
    A[v].push_back({u, w});
    num += 2 * w;
    ru[u]++;
    ru[v]++;
  }
  if (n == 2)
  {
    cout << num / 2 << endl;
    return;
  }
  int st = 1;
  while (ru[st] == 1)
    st++;
  int k = dfs(st, -1);
  cout << num - ans;
}

 F

  就是暴力枚举, 三次和以上的, 二次的特殊一下

LL n, k, cnt = 0, x = 0;
map<LL, int> D;
void s(LL n)
{
  for (LL i = 2; i * i * i <= n; i++)
  {
    LL t = i * i * i;
    while (t <= n)
    {
      t *= i;
      if (D[t])
        continue;
      if ((LL)sqrtl(t) * (LL)sqrtl(t) == t)
        x++;
      D[t] = 1, cnt++;
    }
  }
}
void solve()
{
  cin >> n;
  s(n);
  cout << (LL)sqrtl(n) + cnt - x;
}

机械设计毕业论文-大学生方程式纯电动赛车(总体设计)(有cad图+exb图+中英文翻译)摘 要本文详细介绍了本次设计的方法及指导思想,本次设计的内容是大学生方程式纯电动赛车的设计。纯电动汽车是指以车载电源为动力,用电机驱动车轮行驶,符合道路交通、安全法规各项要求的车辆。由于对环境影响相对传统汽车较小,其前景被广泛看好,但当前技术尚不成熟。随着计算机和电子产品继续开放级骑,电动车技术已经成熟和完善,使驾驶变得更安全,方便,灵活,舒适。现在,从普通消费者从很远的电动车,只有在少数人匆忙它时髦。电力汽车可以真正传统燃料汽车在未来竞争的汽车市场,最终会和智能汽车的电动汽车代替。这只是时间问题。在设计过程中,我是从电动机和电池的选择入手,为了使汽车获的最高行驶速度,经过计算选择了电机和电池。在选好电机和电池后,和设计燃油汽车的底盘一样,并同时综合电动汽车的结构特点,对汽车的传动系统,行驶系统,转向系统,制动系统进行一一分析和布置。在这为纯电动赛车车设计底盘的过程中,要特别注意电动汽车与燃油汽车不同的地方。在我所设计的这辆纯电动赛车上,它的传动系很简单,是电机直接和主减速器用链传动直接连接,这样整个底盘的总布置也可以变的很自由。关键词:纯电动赛车,电机,电池,底盘总布置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值