首页 > 小红的不动点分配
头像 皮卡黄
发表于 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 展开全文
头像 李林臻
发表于 2026-02-10 22:44:01
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int n=0; cin>>n; vector<int>nu 展开全文
头像 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 展开全文
头像 Eclat_W
发表于 2026-02-09 23:36:49
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 1e9 + 7; const int N = 1e6 + 5; int main() { ios::sync 展开全文
头像 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 展开全文
头像 仙鹤要吃鱼
发表于 2026-04-19 13:52:13
思路:我们尽可能把小于等于n的数字先安排好,每个数字能用两次,多余的和大于n的数字直接随意补空就好了。简化下来我只需要计算符合条件的数字有多少个,遍历一次即可 n = int(input()) lis = list(map(int,input().split())) bd = [0]*(n+1) r 展开全文
头像 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 + 展开全文
头像 星璇Xx
发表于 2026-04-27 22:27:01
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; map<int,int> mp; for(int i=1 ; i <= 2*n ; i 展开全文