《如 何 速 通 一 套 题》13.0

邮寄

开场秒掉 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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809101.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网红狗头来深圳了,上图上图

在海雅缤纷城,晚上7点开摆摊,9点结束,10月7日结束。昨天带了变焦xf18-120mm镜头。和75mm1.2f

2024-2025-1 20241407《计算机基础与程序设计》第二周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 [2024-2025-1计算机基础与程序设计第二周作业](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13266)这个作业的目标 数字化 信息安全 *自学教材:计算机科学概论(第七版)第1章…

F5负载均衡系列教程十一【流量负载不均的潜在原因】

F5作为负载均衡设备,主要目的是将流量相对均衡的分发到每台服务器上(如果服务器性能相同),但是某些情况下也可能会产生负载不均的情况,导致负载不均可能的原因主要如下图所示

Visual Studio 2015 社区版安装

下载安装包 链接:https://pan.baidu.com/s/1ebHUp-rUy75-03o5edxHcg 提取码:hs0l --来自百度网盘超级会员V1的分享1、双击安装包2、如图先选自定义,然后选安装路径(英文路径)3、3-安装选项一个就够了,如图4、安装完成

怎么清除浏览器缓存?浏览器缓存清理的方法步骤是什么?

打开浏览器,点击右上角的三个点,然后选择设置按钮。 点击“隐私设置和安全性”按钮。 点击“清除浏览数据”。 选择时间范围,点击清除数据即可,这样就可以将浏览器中的浏览记录、Cookie、缓存的图片和文件清除了。 第一步 打开edge浏览器,点击右上角的三个点,选择设置。第…

[网络爬虫] Jsoup : HTML 解析工具

1 概述 简介Jsoup是一款基于Java的HTML解析器,它提供了一种简单、灵活且易于使用的API,用于从URL、文件或字符串中解析HTML文档。它可以帮助开发人员从HTML文档中提取数据、操作DOM元素、处理表单提交等。主要特点Jsoup的主要特点包括:简单易用:Jsoup提供了一系列简单的API…

F5负载均衡系列教程八【负载均衡算法详解】

#参考文档:3https://clouddocs.f5.com/training/community/f5cert/html/class1/modules/module1.html #系统上可以配置的负载均衡算法如下所示F5默认的负载均衡算法是轮询(Round Robin)负载均衡算法描述使用场景轮询(Round Robin)这是默认的负载均衡方法。轮询方法将每个新…

搜索算法合集 - By DijkstraPhoenix

搜索算法合集 By DijkstraPhoenix 深度优先搜索 (DFS) 引入如果现在有一个迷宫,如何走路径最短?方法 走迷宫最简单粗暴的方法式什么呢?当然是把所有路都走一遍啦! 如果是手动计算的话,可能会把你手指累得抽筋,但电脑不会,电脑具有强大的算力,这种暴力的事情当然是交给电…

个人知识面/技能池

虽然走得慢,但是一直在前行 知识面/技能池 电路 模拟电路微弱信号处理信号链设计1Msps采样电路设计滤波器设计无源滤波器有源滤波器光电探测电路设计电力电子逆变电路设计磁耦合谐振式无线电能传输开关电源LED恒流驱动AC/DC 设计基本电路知识电路基础知识复习跟习题册联系现代…

【CodeForces训练记录】Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round)

赛后反思 做红温了,太菜了,每题都需要WA几次才能过,B题看到 MEX 选择性害怕,时间复杂度又算错了 A题 每次选择一对 \(a_i,a_j\) 把均值插入数组最后面,要想结果最大,对于两个数求均值,最后的结果一定是小于等于其中的较大值,我们可以考虑如何最大化最后一次操作,想到将…

傻逼模拟赛搬的时候能不能看看题面改之后还是不是让人能看懂还有不发 checker 是有什么心事吗

如题。 傻逼模拟赛搬的时候能不能看看题面改之后还是不是让人能看懂还有不发 checker 是有什么心事吗还在最后一道题放集训队互测什么意思 什么叫有 \(b_{k}\) 种 \(k\) 类型的货币,同一种流通的货币不会超过二十种 什么叫接下来 \(n\) 个数表示 \(a_{1} \sim a_{n-1}\)upd:

Java - 10 二维数据

Java - 10 二维数据 一维数组的每个元素又是一个一维数组 静态初始化 int[][] arr = {{0,0,0,0},{1,1,1,1},{2,2,2,2},{3,3,3,3}};public class TwoDimensionArray {public static void main(String[] args) {int[][] arr = {{0,0,0,0},{1,1,1,1},{2,2,2,2},{3,3,3,3}};// 遍历…