首页 > 其他分享 >AtCoder Beginner Contest 347

AtCoder Beginner Contest 347

时间:2024-03-31 11:11:48浏览次数:23  
标签:AtCoder Beginner Contest 位置 347 Problem

AT link

Problem A and B

略。

Problem C

按照模 \(a + b\) 分类,记录最大值和最小值,如果差值小于等于假期时间即可,否则还需要判断按照 \(d_i = D_i \bmod (a + b)\) 排序后相邻的两个是否满足条件。

Problem D

分离出 \(C\) 的二进制位,然后对于每一位 \(c_i > 0\) 尝试在 \(A, B\) 中找一个 \(1\) 放进去,实际上应该放数量更多的那个,放不下则无解。

然后此时 \(A, B\) 中多出来的 \(1\) 应该自己抵消,所以判断数字不相等就无解。最后在每个 \(c_i = 0\) 的位置放上两个 \(1\),最后如果多了就抵消。

Problem E

首先我们可以轻松得到每次操作后集合的大小,将其前缀和数组记为 \(s_i\)。

那么我们考虑一个位置上的数字什么时候会产生贡献,显然是只有出现奇数次的时候,会有连续的一段贡献,那么记录上一个出现的位置,扫一遍就行,最后统计到序列结束仍只有一次的个数。

Problem F

原题。

Problem G

网络流,但是模拟退火。

注意将空的位置初始化为 \(1\),不要调整法,直接随机一个数字赋值就能过。

标签:AtCoder,Beginner,Contest,位置,347,Problem
From: https://www.cnblogs.com/z-t-rui/p/18106502/ABC347

相关文章

  • ABC 347
    C题意:给定\(n\)个数\(d_1\simd_n\),求是否存在一个数\(s\)使得\(1\le(d_i+s)\bmod(a+b)\lea\)。显然可以每个数先模\(a+b\),然后排序。结论:存在当且仅当存在一个数\(i\)使得\((d_{i+1}-d_i)\bmod(a+b)>b\),\(d_{n+1}=d_1\)。F题意:在\(n\timesn\)的矩阵中找......
  • AT_abc347_e 题解
    很水。一个las数组,记录a[i]这个数上一次被加入是什么时候。注意,为防误判,在a[i]被删除的时候,将las[a[i]]设为\(0\)。你也可以这么理解:las是记录在哪出现的visit数组。每次加入一个数的时候,\(\left|S\right|\)就加\(1\),并且使las[a[i]]等于i。删除时,\(\left|S......
  • AtCoder Beginner Contest 347
    A-Divisible(abc347A)题目大意给定\(n\)个数\(a_i\)以及\(k\),输出是\(k\)的倍数的\(a_i\)整除以\(k\)的值。解题思路按照题意判断取模和求整除即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::syn......
  • AT_abc347_c 题解
    最开始的思路爆炸了我就不写了。先d[i]%=(a+b)。然后,排序,破环为链,相当于存储了下一周。再然后,从\(1\)到\(n\)进行一个循环,若d[i+n-1]-d[i]+1<=a就输出Yes。它的原理是什么?翻译一下上面那个语句,就是“我前一个任务的日期的下一周距离我这个任务的日期小于等于节假日天......
  • ABC347题解
    省流:输+赢D按位分析。既然两个数异或后的结果是\(C\),那就考虑\(C\)中为\(1\)的数中有几个是在\(X\)当中的。假如\(\text{a-popcnt(X)==b-popcnt(Y)}\),那么在\(C\)中为\(0\)的数中随便选\(\text{a-popcnt(x)}\)个即可。注意longlong。codeE假如......
  • AtCoder Beginner Contest 347
    很快做完了AB。然后C就不会做了。随便想了个看似正确的就交了,结果WA*1。后来有交了4发,一发比一发离谱。发现D不难,是一个状态数\(60\times60\times60\)的DP,但是貌似细节很多。写了大约20分钟后无伤过了,发现压根没有需要处理的细节。这时是57min。读完E......
  • ABC347G题解
    我不会,但是我会退火!第一眼,\(n\le20\)。退火,启动!大致思路就是随机选一个初始为0的数置为\(1\sim5\)中的某个数,显然图中没有0一定不比有0劣(把所有0改成同一个数一定不劣)。然后把单次计算的复杂度从\(O(n^2)\)变成\(O(1)\):更新有变化位置的值就行了。瞎调调参数......
  • atcoder beginner 346 题解
      看到别人的视频讲解 AtCoderBeginnerContest346A至G題讲解bydreamoon C如果用sort写,那么再从小到大遍历也需要写几行#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<cstdbool>#include<string>#include<......
  • AtCoder Beginner Contest 346
    AtCoderBeginnerContest346比赛链接A-AdjacentProduct思路:b[i]=a[i]*a[i+1]Code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineall(x)x.begin()+1,x.end()voidsolve(){ intn; cin>>n; std::vector<in......
  • Atcoder
    D-食塩水\[\frac{\sum{w_ip_i}}{\sum{w_i}}\gex\\\sum{w_i(p_i-x)}\ge0\\\]fromcollectionsimport*fromitertoolsimport*fromfunctoolsimport*defLI():returnlist(map(int,input().split()))defI():returnint(input())de......