CF 1890A Doremy‘s Paint 3 學習筆記 map的使用

原題

A. Doremy's Paint 3

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

An array?𝑏1,𝑏2,…,𝑏𝑛�1,�2,…,��?of positive integers is good if all the sums of two adjacent elements are equal to the same value. More formally, the array is good if there exists a?𝑘�?such that?𝑏1+𝑏2=𝑏2+𝑏3=…=𝑏𝑛?1+𝑏𝑛=𝑘�1+�2=�2+�3=…=��?1+��=�.

Doremy has an array?𝑎�?of length?𝑛�. Now Doremy can permute its elements (change their order) however she wants. Determine if she can make the array good.

Input

The input consists of multiple test cases. The first line contains a single integer?𝑡�?(1≤𝑡≤1001≤�≤100)?— the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer?𝑛�?(2≤𝑛≤1002≤�≤100)?— the length of the array?𝑎�.

The second line of each test case contains?𝑛�?integers?𝑎1,𝑎2,…,𝑎𝑛�1,�2,…,��?(1≤𝑎𝑖≤1051≤��≤105).

There are no constraints on the sum of?𝑛�?over all test cases.

Output

For each test case, print "Yes" (without quotes), if it is possible to make the array good, and "No" (without quotes) otherwise.

You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.

Example

input

Copy

 

5

2

8 9

3

1 1 2

4

1 1 4 5

5

2 3 3 3 3

4

100000 100000 100000 100000

output

Copy

Yes
Yes
No
No
Yes

Note

In the first test case,?[8,9][8,9]?and?[9,8][9,8]?are good.

In the second test case,?[1,2,1][1,2,1]?is good because?𝑎1+𝑎2=𝑎2+𝑎3=3�1+�2=�2+�3=3.

In the third test case, it can be shown that no permutation is good.

鏈接

傳送門

代碼

#include<bits/stdc++.h>
using namespace std;int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);map<int,int> occ;for(int i=0;i<n;i++){int x;scanf("%d",&x);occ[x]++;}if(occ.size()>=3)	puts("No");else{if(abs(occ.begin()->second-occ.rbegin()->second)<=1)puts("Yes");elseputs("No");}}return 0;
}

總結

1.題目的意思是,輸入一個數列,詢問,能否經過若干次交換順序,使得,該數列變成這樣的數列:任意兩個相鄰的元素之和相等

2.如果要滿足任意兩個相鄰元素之和相等,可以這樣來考慮,

a1+a2=a2+a3

a2+a3=a3+a4

a3+a4=a4+a5

a4+a5=a5+a6

觀察上面的式子,可以發現,a1=a3=a5

?a2=a4=a6

也就是說經過改變順序之后,數列元素間隔一項,兩個元素相等,假設有偶數個元素,就意味著下標是奇數的元素都相等,下標是偶數的元素都相等

如果有奇數個元素,12121,比如說有5個元素,如果仍然滿足間隔一項相等,還是可以滿足要求

偶數:n/2個奇數下標,n/2個偶數下標

奇數:n/2個奇數下標,n-n/2個偶數下標(注意這里的除法是向下取整的除法)

或者 n/2個偶數下標,n-n/2個奇數下標(除法是向下取整的)

3.如果有3個不同的元素,無論如何不可以滿足要求,比如說1,2,3,任意兩個相鄰元素之和都不會相等,無法滿足要求

4.可以記錄某一個數字出現的次數,比較這兩個數字出現的次數,從而判斷能否經過修改,使得滿足題目要求。如果兩個數字出現次數相同,表示是1212這種情況,如果兩個數字出現次數之差等于1,表示12121這種情況

5.另外的情況不滿足題目要求

6.map可以存兩個數據,第一個數據也就是所謂的key,存的是數值,第二個數據存的是該數值出現的次數,和pair差不多,都是存兩個數據

7.map.size()表示map里面有多少個元素,也就是說在這個數列里面有多少個不同的數字

8.map.begin()表示起始元素,map.begin()->second表示起始元素存的數值,也就是某數字出現的次數,map.rbegin()表示map的最后一個元素

9.pair用.second,map用->second(大概是這樣,以后發現不對的話再來修改)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164266.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164266.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164266.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨境電商必須要海外代理IP嗎?盤點五大海外代理IP

相信跨境電商人近日都為了2023的跨境黑五旺季奮戰&#xff0c;而2024也即將來臨&#xff0c;對于跨境人的考驗一波接著一波&#xff0c;根據Adobe Analytics的數據&#xff0c;2022年黑色星期五的銷售額創下91.2億美元新高&#xff0c;網絡星期的銷售額同樣達到創紀錄的113億美…

『 C++類與對象 』多態之單繼承與多繼承的虛函數表

文章目錄 &#x1fae7; 前言&#x1fae7; 查看虛表&#x1fae7; 單繼承下的虛函數表&#x1fae7; 多繼承下的虛函數表 &#x1fae7; 前言 多態是一種基于繼承關系的語法,既然涉及到繼承,而繼承的方式有多種: 單繼承多繼承棱形繼承棱形虛擬繼承 不同的繼承方式其虛表的形…

ToDesk提示通道限制 - 解決方案

問題 使用ToDesk進行遠程控制時&#xff0c;免費個人賬號最多支持1個設備同時發起遠控&#xff0c;若使用此賬號同時在2個設備發起遠控&#xff0c;則會提示通道限制&#xff0c;如下圖&#xff1a; 解決方案 方案1&#xff1a;斷開其它遠控 出現通道限制彈窗時&#xff0…

數據結構(超詳細講解!!)第二十四節 二叉樹(下)

1.遍歷二叉樹 在二叉樹的一些應用中&#xff0c;常常要求在樹中查找具有某種特征的結點&#xff0c;或者對樹中全部結點逐一進行某種處理。這就引入了遍歷二叉樹的問題&#xff0c;即如何按某條搜索路徑訪問樹中的每一個結點&#xff0c;使得每一個結點僅且僅被訪問一次。 …

python3實現tailf命令

由于windows上面沒有類似linux上面的tailf命令&#xff0c;所以下面的python腳本來代替其能力。 tailf.py import re import timeimport os import argparsedef follow(thefile):thefile.seek(0, os.SEEK_END)while True:_line thefile.readline()if not _line:time.sleep(0…

RabbitMQ 搭建和工作模式

MQ基本概念 1. MQ概述 MQ全稱 Message Queue&#xff08;[kju?]&#xff09;&#xff08;消息隊列&#xff09;&#xff0c;是在消息的傳輸過程中保存消息的容器。多用于分布式系統之間進行通信。 &#xff08;隊列是一種容器&#xff0c;用于存放數據的都是容器&#xff0…

docker部署微服務

目錄 docker操作命令 鏡像操作命令 拉取鏡像 導出鏡像 刪除鏡像 加載鏡像 推送鏡像 部署 pom文件加上 在每個模塊根目錄加上DockerFile文件 項目根目錄加上docker-compose.yml文件 打包&#xff0c;clean&#xff0c;package 服務器上新建文件夾 測試docker-compo…

基于springboot和微信小程序的流浪動物管理系統

基于springboot和微信小程序的流浪動物管理系統 內容簡介 基于微信小程序實現的流浪動物管理系統&#xff0c;該系統針對用戶與管理員兩種角色進行開發。 1、提供流浪動物的信息查詢功能&#xff0c;包括品種、年齡、性別、健康狀況等&#xff0c;提供救助活動報名功能。 2…

5.1 PBR基礎 BRDF介紹

基于物理的渲染&#xff08;Physically Based Rendering&#xff0c;PBR&#xff09;是指使用基于物理原理和微平面理論建模的著色/光照模型&#xff0c;以及使用從現實中測量的表面參數來準確表示真實世界材質的渲染理念。 一、反射率方程 理論基礎放在參考鏈接里。 直接開始…

【uniapp】uniapp開發小程序定制uni-collapse(折疊面板)

需求 最近在做小程序&#xff0c;有一個類似折疊面板的ui控件&#xff0c;效果大概是這樣 代碼 因為項目使用的是uniapp&#xff0c;所以打算去找uniapp的擴展組件&#xff0c;果然給我找到了這個叫uni-collapse的組件&#xff08;鏈接&#xff1a;uni-collapse&#xff09…

超詳細的接口測試

本文主要分為兩個部分&#xff1a; 第一部分&#xff1a;主要從問題出發&#xff0c;引入接口測試的相關內容并與前端測試進行簡單對比&#xff0c;總結兩者之前的區別與聯系。但該部分只交代了怎么做和如何做&#xff1f;并沒有解釋為什么要做&#xff1f; 第二部分&#xf…

ShellCode漏洞

ShellCode漏洞 可以查看如下網址&#xff1a; https://www.cnblogs.com/kakadewo/p/12996878.html 定義&#xff1a; shellcode是一段用于利用軟件漏洞而執行的代碼&#xff0c;shellcode為16進制之機械碼&#xff0c;以其經常讓攻擊者獲得shell而得名。shellcode常常使用機…

老鳥總結,軟件測試工程師職業發展規劃路線,入門到沖擊大廠...

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 1、測試工程師發展…

YOCTO 下載repo工具失敗解決辦法

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repocp repo ~/binchmod ax ~/bin/repo如果使用時報錯&#xff0c; 切換ubuntu 到 python3 版本。gedit repo 修改repo默認鏈接地址&#xff1a;REPO_URL "https://gerrit.googlesource.com/git-repo"…

Spring AOP-面向切面編程概念

Spring AOP-面向切面編程概念 AOP&#xff08;面向切面編程&#xff09;是編程范式的一種&#xff0c;它允許程序員將橫切關注點&#xff08;cross-cutting concerns&#xff09;模塊化。在面向切面編程中&#xff0c;這些橫切關注點通常體現為在多個點重復出現的代碼&#xf…

Android設計模式--適配器模式

至誠之道&#xff0c;可以前知 一&#xff0c;定義 適配器模式把一個類的接口變換成客戶端所期待的另一種接口&#xff0c;從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 適配器模式在我們的開發中使用率極高&#xff0c;ListView&#xff0c;GridView&am…

面試cast:reinterpret_cast/const_cast/static_cast/dynamic_cast

目錄 1. cast 2. reinterpret_cast 3. const_cast 3.1 加上const的情況 3.2 去掉const的情況 4. static_cast 4.1 基本類型之間的轉換 4.2 void指針轉換為任意基本類型的指針 4.3 子類和父類之間的轉換 5. dynamic_cast 5.1 RTTI(Run-time Type Identification) 1.…

Selenium實現多頁面切換

當使用 Selenium 進行自動化測試或爬取數據時&#xff0c;有時需要處理多個頁面之間的切換。以下是一些可能需要多頁面切換的情況&#xff1a; 1、打開新窗口/頁面&#xff1a; 在當前頁面上點擊鏈接、按鈕或執行某些操作時&#xff0c;可能會打開一個新的窗口或頁面。此時&a…

【element優化經驗】怎么讓element-ui中表單多語言切換排版不亂

目錄 前言&#xff1a; 痛點&#xff1a; 1.左對齊&#xff0c;右對齊在中文和外語情況下字數不同&#xff0c;固定寬度會使名稱換行&#xff0c;不在整行對齊&#xff0c;影響美觀。 2.如果名稱和輸入框不在一行&#xff0c;會使頁面越來越長 3.label-width值給變量&#…