首页 > 小红的不动点分配
头像 皮卡黄
发表于 2026-01-22 09:59:39
关键思路 不动点的形成条件 由于每组的大小为 ,位置索引范围为 到 。因此,只有值在 范围内的元素才可能在某个位置 形成不动点(即 )。值大于 的元素无法形成任何不动点。 最大不动点贡献分析 对于每个值 (): 若该值在输入中出现 次,则最多可以为两组分别提供一个 (即在第一组的 展开全文
头像 星汐ya
发表于 2026-01-28 09:32:01
#include<bits/stdc++.h> using namespace std; #define ll long long int v[200000]={0};//记录每个数出现的次数 int main() { int n; int ans=0; scan 展开全文
头像 Drink0318
发表于 2025-12-09 14:45:46
import sys from collections import Counter n = int(input()) lst = list(map(int,input().split())) # 统计每个数字的出现次数 counter = Counter(lst) res=0 for key,va 展开全文
头像 wnyyds
发表于 2026-02-01 08:57:35
思路:把小于等于n的值放到哈希表里面,因为大于n的值根本 没有机会成为不动点,然后如果这个数字在数组里面出现过两次及其以上 证明他可以为两个数组都提供不动点,贡献度就为2,如果出现一次 那么只能为一个数组提供贡献度 #include <bits/stdc++.h> using names 展开全文
头像 ddb酱
发表于 2025-11-17 10:54:49
#include <bits/stdc++.h> using namespace std; #define endl "\n" using vi = vector<int>; using msi = multiset<int>; void s 展开全文
头像 l_ss
发表于 2025-11-28 00:39:23
#include <bits/stdc++.h> using namespace std; map<int, int>mp; int main() { int n; cin >> n; vector<int>a(2 * n + 展开全文
头像 牛客用户098471297
发表于 2025-11-28 08:46:27
#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define quick ios::sync_with_stdio(false);cin.tie(0);cout.t 展开全文
头像 Herman欧y
发表于 2026-01-07 16:08:55
#include <bits/stdc++.h>//我们知道一个数字只能分配到一个数组里面,由于两组内部的顺序均可任意重排,所以我们只要关心这个数字的出现次数,如果大于等于二我就能产生2个不动点,如果等于1只能产生一个 using namespace std; int main() { 展开全文
头像 万暮
发表于 2026-01-24 19:46:35
#include <bits/stdc++.h> using namespace std; int main() { int n,t,ans=0; cin>>n; int len=2*n; map<int,int>mp; w 展开全文
头像 tartarns_yan
发表于 2025-12-08 08:22:05
#include <bits/stdc++.h> using namespace std; int a[400005]; map<int, int>mapp; int main() { int n, res = 0; cin >> n; f 展开全文

等你来战

查看全部