首页 > 其他分享 >Solution - 倍杀测量者

Solution - 倍杀测量者

时间:2024-01-24 21:55:19浏览次数:27  
标签:log cin int double 测量 Solution mid cout

其实是为了光明正大地 waste time。不然谁会写这种垃圾题解?

首先这个有一个非常明显的单调性,考虑直接二分答案。那么就转化为了判定类似于 \(A_i \geq k \times B_i\) 等条件是否成立。这个乘号看起来很突兀,于是用一个 trick,加上一个 \(\log\),于是相当于 \(\log A_i \geq \log k + \log B_i\)。我去,直接差分约束。那么如果没有负环就代表没有人女装。

然后注意一下二分的边界,\(r = \min\limits_{i = 1} ^ n k_i (o_i = 1)\)。

namespace liuzimingc {
const int N = 1e3 + 5;
#define endl '\n'

int n, m, t, o[N], a[N], b[N], k[N], score[N], cnt[N];
double dis[N];
vector<pair<int, double>> e[N];
queue<int> q;
bool vis[N];

bool check(double mid) {
	for (int i = 0; i <= n + 1; i++) e[i].clear();
	for (int i = 1; i <= m; i++)
		if (o[i] == 1) e[a[i]].push_back(make_pair(b[i], -log(k[i] - mid)));
		else e[a[i]].push_back(make_pair(b[i], log(k[i] + mid)));
	for (int i = 0; i <= n; i++) {
		if (score[i]) {
			e[i].push_back(make_pair(0, -log(score[i])));
			e[0].push_back(make_pair(i, log(score[i])));
		}
		e[n + 1].push_back(make_pair(i, 0));
	}
	while (q.size()) q.pop();
	for (int i = 0; i <= n + 1; i++) vis[i] = false, cnt[i] = 0, dis[i] = 1e18;
	q.push(n + 1);
	vis[n + 1] = true;
	dis[n + 1] = 0;
	while (q.size()) {
		int u = q.front(); q.pop();
		vis[u] = false;
		for (const auto &i : e[u]) {
			int v = i.first;
			double w = i.second;
			if (dis[u] + w < dis[v]) {
				dis[v] = dis[u] + w;
				cnt[v] = cnt[u] + 1;
				if (cnt[v] >= n + 2) return true;
				if (!vis[v]) q.push(v), vis[v] = true;
			}
		}
	}
	return false;
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	double l = 0, r = 10;
	cin >> n >> m >> t;
	for (int i = 1; i <= m; i++) {
		cin >> o[i] >> a[i] >> b[i] >> k[i];
		if (o[i] == 1) r = min(r, (double)k[i]);
	}
	while (t--) {
		int stu;
		cin >> stu;
		cin >> score[stu];
	}
	if (!check(0)) return cout << -1 << endl, 0;
	while (r - l > 1e-6) {
		double mid = (l + r) / 2;
		if (check(mid)) l = mid;
		else r = mid;
	}
	cout << fixed << setprecision(10) << l << endl;
	return 0;
}
} // namespace liuzimingc

标签:log,cin,int,double,测量,Solution,mid,cout
From: https://www.cnblogs.com/liuzimingc/p/-/kill

相关文章

  • Solution Set #8
    状态开始回暖了,但是还是好菜/kk134qoj3998.TheProfiteer(背包,分治)套用决策单调性的分治,查询最优端点的时候二分查找,可以做到\(\mathcal{O}(nk\log^2n)\)。上面的做法是可以优化的:二分的时候把确定的范围直接加入,这样就是\(\mathcal{O}(nk\logn)\)的了。https://qoj.ac/......
  • Solution Set【2024.1.20】
    A.整除首先特殊考虑\(x=1\)的情况,不难发现其合法当且仅当\(\sum\limitsc_i=m\)。对于\(x>1\),我们有\[\sum\limits_{i=0}^{m-1}x^i=\frac{x^m-1}{x-1}\]因此我们不妨考虑\(f(x)=\sum\limits_{i}c_ix^{a_i}\times\left(x-1\right)\)在模\(x^m-......
  • CodeForces 1466H Finding satisfactory solutions
    洛谷传送门CF传送门考虑给定\(b\)如何构造\(a\)。拎出基环树的环部分,把这些点连同它们的边删掉(这个环一定在答案中)。递归做即可。考虑我们在\(a\)的环上连一些在\(\{b_{i,n}\}\)中排得比\(a_i\)前的\(i\toj\)。可以将问题转化为,若干个环,缩点后连一些边使得它成......
  • Solution Set【2024.1.17】
    [ABC298Ex]SumofMinofLength在下文的推导中假设\(\operatorname{depth}_{L}\le\operatorname{depth}_R\),若不符合则交换\(L\)和\(R\)。首先我们可以发现,我们可以找到\(R\)的\(\left\lfloor\frac{\operatorname{dist}\left(L,R\right)}{2}\right\rfloor\)级祖先......
  • Solution Set【2024.1.16】
    A.硬币首先根据周长最大的要求不难发现我们实际上要求的是\(n^2+1\)的最小质因子,记作\(f_n\),通过观察可以发现若对于个\(t\),满足存在\(p\)使得\[p\midt^2+1\]那么对于所有\(k\ge0\),一定有\[p\mid\left(t+k\cdotp\right)^2+1\]因此我们可以维护一个序......
  • 一文读懂半导体晶圆形貌厚度测量的意义与挑战
    半导体晶圆形貌厚度测量的意义与挑战半导体晶圆形貌厚度测量是半导体制造和研发过程中至关重要的一环。它不仅可以提供制造工艺的反馈和优化依据,还可以保证半导体器件的性能和质量。在这个领域里,测量的准确性和稳定性是关键。半导体器件通常是由多层薄膜组成,每一层的厚度都对器......
  • 电压测量
    ①问题点:因5G模组供电不正常,业务未检测到/dev/ttyUS0设备节点下发reboot,设备反复重启。首先排查了serdes的配置为正常,因此排查硬件电路。//底板上存在小圆点、三角符号通常是引脚11)首先测量3.8V电压是否正常,通过测量电感L8736(测试过程中发现丝印与原理图不一致问题)2)PCB给......
  • CF1016D Vasya And The Matrix Solution
    题目传送门做法因为是异或运算,可以按位考虑。先预处理出行(\(a[i]\))异或和\(suma\),与列(\(b[i]\))的异或和\(sumb\)。如果\(suma\nesumb\),那就说明无解,因为\(suma\)和\(sumb\)最后都代表着整个矩阵的异或和,如果两者不相等,那就说明矛盾,无解。否则就一定......
  • MTM:生产过程的时间测量与优化
    在当今全球化的制造业环境中,对于生产效率和过程优化的追求从未停止。MTM,全称为Method-Time-Measurement,作为一种广泛应用的预定时间方法,已经成为跨国公司所属各个单位统一的生产过程计划与效率规范。MTM的核心在于对操作过程的精确测量和标准化。它采用一套系统的方法,通过编码的组......
  • 三维轮廓测量仪:革命性技术在工业智能制造中的多重应用
    现代工业智能制造领域中,三维轮廓测量仪是一项重要的测量技术。三维轮廓测量仪利用光学、激光或光电等技术手段,通过测量物体表面轮廓的三维坐标信息,能实现对物体形状、尺寸和表面特征的准确测量。它可以广泛应用于工业自动化、制造工艺控制、产品质量检测等领域,为工业生产提供了更......