首页 > 其他分享 >《如 何 速 通 一 套 题》13.0

《如 何 速 通 一 套 题》13.0

时间:2024-10-06 17:00:36浏览次数:1  
标签:lf arr return int 13.0 fl dp

邮寄

开场秒掉 A。

B 不会做,写了 70。

----- 1h -----

然后看 C。

C 瞪了 114514 眼看不出来,然后再瞪了 1919810 眼,终于看出来了。

----- 3h -----

然后就不会了,D 啥都想不出来。

最后 100+70+100+0=270。

A 喷泉

弱智题。

直接计算 \(C\) 至 \(AB\) 的距离 \(-r\) 和 \(A, B\) 至 \(C\) 的距离最大值 \(+r\) 即可。

#include <bits/stdc++.h>
using namespace std;
using fl = double;

int t;
fl xa, ya, xb, yb, xc, yc, r;

fl len(fl x, fl y, fl x2, fl y2) {
  return hypot(x2 - x, y2 - y);
}

int main() {
  freopen("fountain.in", "r", stdin);
  freopen("fountain.out", "w", stdout);
  //ios::sync_with_stdio(0);
  //cin.tie(0), cout.tie(0);
  for(scanf("%d", &t); t--; ) {
    //cin >> xa >> ya >> xb >> yb >> xc >> yc >> r;
    scanf("%lf%lf%lf%lf%lf%lf%lf", &xa, &ya, &xb, &yb, &xc, &yc, &r);
    //printf("%lf %lf %lf %lf %lf %lf %lf\n", xa, ya, xb, yb, xc, yc, r);
    fl a = len(xa, ya, xc, yc), b = len(xb, yb, xc, yc), c = len(xa, ya, xb, yb);
    fl x = (c + ((a + b) * (a - b) / c)) / 2;
    printf("%.2lf %.2lf\n", sqrt(a * a - x * x) - r, max(a, b) + r);
    //cout << fixed << setprecision(2) << sqrt(a * a - x * x) - r << ' ' << max(a, b) + r << '\n';
  }
  return 0;
}

B 红绿灯

把当前时间相同的合并在一起,维护每一个集合的当前时间,跳过啥都没做的循环,再加上数据随机,可以过。

#include <bits/stdc++.h>
using namespace std;

int n, m, arr[100010], f, fa[100010], ep[100010], cc, gd;
unordered_map<int, set<int> > mp;

int findfa(int x) {
  return fa[x] == x? x : (fa[x] = findfa(fa[x]));
}

void unionn(int x, int y) {
  x = findfa(x), y = findfa(y);
  if(x == y) {
    return ;
  }
  if(x < y) {
    swap(x, y);
  }
  cc--;
  fa[y] = x;
}

void cal(int x) {
  if(gd % x == 0) {
    return ;
  }
  for(int i = 1; i <= n; i++) {
    i = findfa(i);
    ep[i] = (ep[i] + x - 1) / x * x;
    mp[ep[i]].insert(i);
  }
  for(auto &i : mp) {
    for(auto j : i.second) {
      unionn(j, *(i.second.begin()));
    }
  }
  gd = 0;
  for(int i = 1; i <= n; i++) {
    i = findfa(i);
    gd = __gcd(gd, ep[i]);
  }
  mp.clear();
}

int main() {
  freopen("light.in", "r", stdin);
  freopen("light.out", "w", stdout);
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  cin >> n >> m;
  //scanf("%d%d", &n, &m);
  for(int i = 1; i <= m; i++) {
    cin >> arr[i];
    //scanf("%d", arr + i);
    f |= arr[i] > 3;
  }
  gd = 1;
  m = unique(arr + 1, arr + m + 1) - arr - 1;
  if(f || m <= 10 || n * m <= 1000000) {
    iota(fa + 1, fa + n + 1, 1);
    iota(ep + 1, ep + n + 1, 1);
    cc = n;
    for(int i = 1; i <= m; i++) {
      cal(arr[i]);
      //cout << i << ' ' << cc << '\n';
    }
    for(int i = 1; i <= n; i++) {
      cout << ep[findfa(i)] << ' ';
      //printf("%d ", ep[findfa(i)]);
    }
    cout << '\n';
    //printf("\n");
  }else {
    for(int i = 1; i <= n; i++) {
      cout << (i + 5) / 6 * 6 << ' ';
      //printf("%d ", (i + 5) / 6 * 6);
    }
    cout << '\n';
    //printf("\n");
  }
  return 0;
}

C 子集

首先我们假设选了 \(x\) 个元素,易知答案为 \(k^{n - x}\)。

所以我们设 \(dp_x\) 为子集和为 \(x\) 时的答案,每一次加入一个数时维护 \(dp\) 就可以了。

\(dp_0 = k^n\)

加一个数时:

\(dp_{i + a_x} \leftarrow \frac{dp_i}{k}\)

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const int kMod = int(1e9) + 7;

int t, n, m, k, arr[5050], dp[5050], ik;

int qpow(int x, int y) {
  int rs = 1;
  for(; y; y >>= 1) {
    if(y & 1) {
      rs = 1ll * rs * x % kMod;
    }
    x = 1ll * x * x % kMod;
  }
  return rs;
}

int qinv(int x) {
  return qpow(x, kMod - 2);
}

int main() {
  freopen("subset.in", "r", stdin);
  freopen("subset.out", "w", stdout);
  for(cin >> t; t--;) {
    cin >> n >> m >> k;
    ik = qinv(k);
    dp[0] = qpow(k, n);
    for(int i = 1; i <= n; i++) {
      cin >> arr[i];
      for(int j = m - arr[i]; j >= 0; j--) {
        dp[j + arr[i]] = (dp[j + arr[i]] + 1ll * dp[j] * ik) % kMod;
      }
    }
    cout << dp[m] << '\n';
    fill(dp, dp + m + 1, 0);
  }
  return 0;
}

标签:lf,arr,return,int,13.0,fl,dp
From: https://www.cnblogs.com/leavenothingafterblog/p/18449202/speedrunv13

相关文章

  • 解决MacOS 13.0.1 苹果M1芯片 导入pyaudio报错的问题
    【问题】如果正常按照网上的教程,在terminal先使用brew安装portaudio(brewinstallportaudio),再使用pip在conda环境里安装pyaudio(pipinstallpyaudio),然后python直接导入pyaudio(importpyaudio)会报错如下:【分析】可知报错来自于portaudio动态库。网上搜索解决方案,除了重装、重启......
  • Android 13.0 recovery页面旋转180度问题的解决方案
    1.前言在13.0的系统rom定制化开发工作中,在系统中recovery的页面也是相关重要的一部分,在系统recoveryota升级等功能,都是需要recovery功能的,在某些产品定制化中在recovery的时候,发现居然旋转了180度,接下来分析下recovery关于屏幕显示方向的相关源码,来修改这个功能2.recovery......
  • Android 13.0 禁用adb install 安装app功能
    1.前言 在13.0的系统rom产品开发中,在进行一些定制开发中,对于一些app需要通过属性来控制禁止安装,比如adbinstall也不允许安装,所以就需要熟悉adbinstall的安装流程,然后来禁用adbinstall安装功能,接下来分析下adb下的安装流程,来实现相关的功能2.禁用adbinstall安装app功......
  • Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plug
    创建了一个maven项目,然后在编译时运行错误:“failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile(default-compile)onprojectforum:thepluginorg.apache.maven.plugins:maven-compiler-plugin:3.13.0requiresmavenversion3.6.3-......
  • EdrawMax 13.0安装包附安装教程
    下载链接:https://docs.qq.com/doc/DSVJlY01teWpjd05K1、首先,解压亿图图示EdrawMax13.0.0压缩包,解压密码是rcy22。2、打开亿图图示EdrawMax13.0.0安装包,运行EdrawMax13.0.0程序。3、默认,点击确定。4、勾选我已同意,点击下一步。5、更改亿图图示EdrawMax1......
  • Android 13.0 mt6771新增分区功能实现一
    1.前言 在13.0的系统ROM定制化开发中,在对某些特殊模块中关于数据的存储方面等需要新增分区来保存,所以就需要在系统分区新增相关的分区,来实现功能,接下来就来实现这个功能,来新增分区功能2.mt6771新增分区功能实现一的核心类build/make/core/Makefilebuild/make/cor......
  • 基于Kube-Prometheus/v0.13.0的K8S监控部署
    Kube-Prometheus不同版本支持的Kubernetes版本信息如下:kube-prometheusstackKubernetes1.22Kubernetes1.23Kubernetes1.24Kubernetes1.25Kubernetes1.26Kubernetes1.27Kubernetes1.28release-0.10✔✔✗✗xxxrelease-0.11✗✔✔✗xxx......
  • 最新版 SteinbergNuendo13.0.41 Win&Mac
    软件介绍2024.6.13官方最新发布WIN版本13.0.41,此版本为VR版本!资源包含6个版本。下载安装一个即可!新版本进行了大量的更新和修复,详情查看以下链接SteinbergNuendo是一款屡获殊荣的影视、游戏和沉浸式环绕声音频后期制作软件Nuendo在对白录音和编辑方面做了重大改进,为你的......
  • Arturia - FX Collection 5 v5.0.0 VST, VST3, AAX x64 {R2R} [13.06.2024]
    Arturia-FXCollection5v5.0.0forWindowsmac【【新品发布+小广告】ArturiaFXCollection5超强音乐制作插件套装34款产品逐一点评】https://www.bilibili.com/video/B...4d4e7f5c56f93e901cd    包括BusEXCITER-104BusFORCEBusPEAKChorusDIMENSION-DCh......
  • httpsok-v1.13.0支持七牛云证书自动部署
    ......