cf
yin101_
这个作者很懒,什么都没留下…
展开
-
Knowledge Test about Match
Knowledge Test about Match 思路:肯定先无脑sort一下,主基调是从小到大,但是会存在非最优解(1,2)最优解应该是(2,1) 。 因此再暴力匹配最优解,差不多3次暴力匹配就可以从局部最优解得到全局最优解。 至于为什么,不清楚。。 #include<stdio.h> #include<string.h> #include<iostream> #include <algorithm> #include<stack>原创 2021-07-22 10:55:27 · 118 阅读 · 0 评论 -
Game of Swapping Numbers
Game of Swapping Numbers 链接:https://ac.nowcoder.com/acm/contest/11166/G 来源:牛客网 题目描述 Given two arrays A, B with length N, you should perform exactly K operations in array A. For each operation, choose 2 elements Ai,Aj(1≤i<j≤N)A_i, A_j(1 \leq i < j \le原创 2021-07-21 21:31:00 · 168 阅读 · 0 评论 -
C. Product 1 Modulo N
C. Product 1 Modulo N 思路: 要求序列乘积sum和n取模等1,也就是说它们两个是互质的。 那么这个序列的每一个数和n都是互质的 那就维护一个sum = (sum*i)%mod , 1<=i <n 舍去最后一个不等于1的sum即可,因为sum肯定也是和n互质的,所以是可以舍弃的值 #include <iostream> #include <queue> #include <algorithm> #include <map> #i原创 2021-04-23 19:50:39 · 376 阅读 · 0 评论 -
B. AGAGA XOOORRR
B. AGAGA XOOORRR 思路: 直接判断最后的数组的结果, 先得到整个数组的异或和为sun,如果sum为0,则说明这个数组一定可以拼成偶数个相同的值,所以输出yes 如果sum不为0,那么只有拼出奇数个sum(偶数个sum就会导致结果为0),那么至少要3个,且拼剩下的数必须为0才能输出yes否则就是no。 #include <iostream> #include <queue> #include <algorithm> #include <map>原创 2021-04-23 08:57:27 · 52 阅读 · 0 评论 -
C. Baby Ehab Partitions Again
C - Baby Ehab Partitions Again 题意:给定一个序列,问如何在删除最少数字的情况下将它们分为两组,并时两组的和相等。 思路:分类讨论 1.整个数组结果为奇数时,不用删除 2.结果为偶数时,判断能不能凑出满足条件的两个分组(通过01背包算法就可以判断,01背包中的价值等于大小的情况下,就可以判断在最大背包大小的情况下的最大值是否等于这个大小) 2.1不能,则不用删除 2.2能,则将数组的每个元素同时除2,直到出现1为止,删除这个数字就可以了。这是因为整个数组不断同时/2之后结原创 2021-04-23 08:48:23 · 331 阅读 · 0 评论 -
Codeforces Round #696 (Div. 2) C. Array Destruction
https://codeforces.com/contest/1474/problem/C 思路:通过思考可以发现取两个数为一组,其中的最大值为下一组的x,那么第1组就要有数组的最大的数a,第2组要包含数组第二大的数b,因为不这么做的化,比如取第三大的数c和另一个数d组成c+d = a,那么c就是下一个x, 而这个x比b小,同时x的值是越来越小的,那么就无法去掉b了。 因此,知道每一组都要取剩下的数组的最大的一个数之后,从第二组开始,由于x已经确定就是初始数组最大的数,同时第二组的一个数字可以确定,那么第二原创 2021-01-21 17:33:03 · 86 阅读 · 0 评论