首页 > [NOI2015]程序自动分析
头像 白给怪
发表于 2020-06-03 19:42:39
题目链接:https://ac.nowcoder.com/acm/problem/17881首先看到这道题,最简单的想法就是对于每一对相等的i,j通过并查集来建立联系,然后再去判断不相等的i,j是否有相等关系,有则不成立,没有就成立。但是一看i和j的数据范围,头晕了。这么大的数据?????那怎么办呢 展开全文
头像 henry_y
发表于 2019-09-02 21:26:23
Solution 很容易就能一眼并查集吧...提供一个简便且好写的方法,利用了哈希的思想。但是太大了。顺理成章想到离散化 这是对的 但是离散化好麻烦啊 所以我们拿一个大质数来一下吧 比如某神奇的八位质数? #include <bits/stdc++.h> using namespace 展开全文
头像 GenmCai
发表于 2019-08-23 12:12:20
【题目】 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设 𝑥1, 𝑥2, 𝑥3, ⋯ 代表程序中出现的变量,给定 𝑛 个形如 𝑥𝑖 = 𝑥𝑗 或 𝑥𝑖 ≠ 𝑥𝑗 的变量相等/不等的约束条件,请判定是否可以分别为每一个 展开全文
头像 sunrise__sunrise
发表于 2020-06-08 11:24:52
离散化+并查集 关系的化就是并查集处理,但是数据规模很大,下标到了1e9,所以开不下那么大的并查集数组,那么怎么办,离散化去搞。我们不需要知道每个数具体多大,只需要知道相对大小,找到这个数就行了。别用set,常数很大,就用快排+去重。 #pragma GCC target("avx,sse2,sse 展开全文
头像 cheeserish
发表于 2020-06-22 11:25:44
可以离散化一下,也可以用map存; #include<bits/stdc++.h> using namespace std; #define close_stdin ios::sync_with_stdio(false) int t; unordered_map<int,int& 展开全文
头像 cccyyxx
发表于 2020-06-21 16:43:44
题目链接:https://ac.nowcoder.com/acm/problem/17881首先看到这道题第一反应这不就是一道最基本的并查集的题目吗,但是当看到数据的时候,我们会发现i,j太大了,普通数组存不下,那该怎么办,很多人都说离散化(然而我太菜了不会),此处我的第一想法是用map来代替数组, 展开全文
头像 昵称很长很长真是太好了
发表于 2020-06-10 16:19:41
题目描述:在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设 𝑥1, 𝑥2, 𝑥3, ⋯ 代表程序中出现的变量,给定 𝑛 个形如 𝑥𝑖 = 𝑥𝑗 或 𝑥𝑖 ≠ 𝑥𝑗 的变量相等/不等的约束条件,请判定是否可以分别为每一个 展开全文
头像 sunny_forever
发表于 2021-08-08 19:35:39
并查集 + 离散化 思路 离散化之后,先执行 op = 1 的,再执行 op = 0 的 执行 op = 1 的时:直接合并 执行 op = 0 的时:进行判断Code #include <bits/stdc++.h> using namespace std; const int N 展开全文