Codeforces Round #956 (Div. 2) and ByteRace 2024

A. Array Divisibility

?

思路:

找出特例,發現輸出?1~𝑛?符合題意。直接輸出1~n即可.

代碼:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 1000005
ll dp[N], w[N], v[N], h[N];
ll dis[1005][1005];
ll a, b, c, n, m, t;
ll ans, sum, num, minn = 1e9 + 7, maxx = 0;
struct node {ll a, b, c;
}f[N];
string s1, s2;
int main()
{cin >> t;while (t--){cin >> n;for (int i = 1; i <= n; i++){cout << i << " ";}cout << endl;}return 0;
}

B. Corner Twist

?

?思路:

關鍵的充要條件是?𝑎,𝑏?的每一行/列的和模?3?后相等。證明的話,首先要想到?2×2?的操作是可以完成所有大小的子矩陣操作的,手模一下可以發現是對的。接著考慮比較暴力的方式,我們遍歷?𝑖,𝑗?從?1~𝑛?1?和?1~𝑚?1,然后把?𝑎𝑖,𝑗?按對應操作修改成?𝑏𝑖,𝑗,經過這樣之后前?𝑛?1?行和?𝑚?1?列都是可以相等的,所以也就是看最后那一列是否滿足。而這個遍歷順序又是可以變化的,也就是最后剩下的行列可以是任意一行一列,所以要所有行列均滿足模?3?結果相等。

代碼:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 1000005
ll dp[N], w[N], v[N], h[N];
char a[505][505], b[505][505];
ll x1[505], x2[505], y[505], y2[505];
ll  n, m, t;
ll ans, sum, num, minn = 1e9 + 7, maxx = 0;
struct node {ll a, b, c;
}f[N];
string s1, s2;
int main()
{cin >> t;while (t--){cin >> n >> m;memset(x1, 0, sizeof(x1));memset(x2, 0, sizeof(x2));memset(y, 0, sizeof(y));memset(y2, 0, sizeof(y2));for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> a[i][j];x1[i] += a[i][j]-'0';y[j] += a[i][j]-'0';}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> b[i][j];x2[i] += b[i][j]-'0';y2[j] += b[i][j]-'0';}}int flag = 1;for (int i = 1; i <= n; i++) {if (x1[i] % 3 != x2[i] % 3) {flag = 0;break;}}for (int j = 1; j <= m; j++) {if (y[j] % 3 != y2[j] % 3) {flag = 0;break;}}if (flag == 1)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;
}

C. Have Your Cake and Eat It Too

?

?

思路:

枚舉三個人的順序,然后把序列分成三段就行了,判斷可以直接?𝑂(𝑛),至于枚舉順序不需要重復粘貼六次代碼,用一個?next_permutation?函數就行了。

代碼:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll ans, num, sum, cnt;
ll dp[N], ac[4][N], a[4][N], get1[N], get2[N];
bool flag, vis[N];
struct node {ll mark, x, y;
}f[N];
bool cmp(node a, node b) {return a.mark < b.mark;
}
int main()
{cin >> t;while (t--){cin >> n;ac[1][0] = ac[2][0] = ac[3][0] = sum = 0;for (int i = 1; i <= 3; i++) {for (int j = 1; j <= n; j++) {cin >> a[i][j];if(i==1) sum += a[i][j];ac[i][j] = ac[i][j - 1] + a[i][j];}}sum = (sum + 2) / 3;for (int i = 1; i <= 3; i++) {for (int j = 1; j <= n; j++) {if (ac[i][j] >= sum) {get1[i] = j;break;}}}for (int i = 1; i <= 3; i++) {for (int j = n - 1; j >= 0; j--) {if (ac[i][n]-ac[i][j] >= sum) {get2[i] = j+1;break;}}	}ll order[3] = { 1,2,3 };flag = 1;do {for (int i = 0; i < 3; i++)f[i].mark = order[i];f[1].x = get1[order[0]] + 1, f[1].y = get2[order[2]] - 1;if (ac[order[1]][f[1].y] - ac[order[1]][f[1].x - 1] < sum)continue;f[0].x = 1, f[0].y = get1[order[0]];f[2].x = get2[order[2]], f[2].y = n;sort(f , f + 3, cmp);for (int i = 0; i < 3; i++) {cout << f[i].x << " " << f[i].y << " ";}cout << endl;flag = 0;break;} while (next_permutation(order, order + 3));if (flag)cout << -1 << endl;}return 0;
}

D. Swap Dilemma

?

思路:

首先如果元素不同直接輸出"NO",如果相同,那么我們可以通過求出個兩個序列的轉換成相同序列的次數,也就是會改變?𝑎,𝑏?逆序對的數量,并且同時改變其數量奇偶性,所以怎么只要保證兩次序列的奇偶性相同即可,但我們可以進行優化,將只對一個序列進行操作,只要將序列B映射到序列A上,那么問題就變成了只需要求映射后的序列B的逆序對個數即可.

代碼:

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
typedef long long ll;
typedef unsigned long long ull;
ll n, m, t, h, k;
ll ans, num, sum, cnt;
ll temp[N], a[N], f1[N], f2[N];
bool flag, vis[N];
struct node {ll mark, x, y;
}f[N];
bool cmp(node a, node b) {return a.mark < b.mark;
}
void merge_sort(int l, int r)
{if (l == r)return;int mid = l + r >> 1;merge_sort(l, mid);merge_sort(mid + 1, r);int ll = l, st = l, rr = mid + 1;while (l <= mid and rr <= r){if (a[l] <= a[rr])temp[ll++] = a[l++];elsetemp[ll++] = a[rr++], ans += mid - l + 1;}while (l <= mid)temp[ll++] = a[l++];while (rr <= r)temp[ll++] = a[rr++];for (int i = st; i <= r; i++)a[i] = temp[i];return;
}
int main()
{cin >> t;while (t--){ans = 0,flag=1;cin >> n;map<ll, ll>mp;for (int i = 1; i <= n; i++) {cin >> f1[i];mp[f1[i]] = i;}for (int i = 1; i <= n; i++) {cin >> f2[i];}for (int i = 1; i <= n; i++) {if (mp.count(f2[i]) == 0) {flag = 0;break;}a[i] = mp[f2[i]];}merge_sort(1, n);if (flag == 0) {cout << "NO" << endl;}else {if (ans % 2==0)cout << "YES" << endl;elsecout << "NO" << endl;}}return 0;
}

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

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

相關文章

iOS 開發技巧 - 使用本地 json 文件

前言 使用本地 json 文件的場景&#xff0c;在我們開發功能的階段&#xff0c;服務端接口字段定義好了后&#xff0c;有些接口響應很慢&#xff0c;請求到響應可能要 幾十秒甚至一分鐘&#xff0c;我們需要頻繁調用接口來調試功能&#xff1b;還有就是調用一些我們需要付費的三…

Ubuntu20.04下修改samba用戶密碼

Ubuntu20.04下修改samba用戶密碼 在Ubuntu系統中&#xff0c;修改samba密碼通常涉及到兩個方面&#xff1a;更改samba用戶的密碼和重置samba服務的密碼數據庫。以下是如何進行操作的步驟&#xff1a; 1、更改samba用戶密碼&#xff1a; 打開終端&#xff0c;使用以下命令更改…

vue打包terser壓縮去除控制臺打印和斷點

情況一&#xff1a; 1、vue-cli搭建 代碼壓縮工具terser在vue-cli里面是自動支持的&#xff0c;所以直接在vue.config.js里面加入下面配置&#xff1a; const {defineConfig} require(vue/cli-service) module.exportsdefineConfig({transpileDependencies:true,terser:{te…

看影視學英語(假如第一季第一集)

in the hour也代表一小時嗎&#xff1f;等同于in an hour&#xff1f;

activemq-CVE-2022-41678

Apache ActiveMQ Jolokia 后臺遠程代碼執行漏洞 Apache ActiveMQ在5.16.5&#xff0c;5.17.3版本及以前&#xff0c;后臺Jolokia存在一處任意文件寫入導致的遠程代碼執行漏洞。 啟動環境 admin/admin 方法一&#xff1a;利用poc 這個方法受到ActiveMQ版本的限制&#xff0c;因…

Linux 創建新虛擬機的全過程圖解

一、創建新虛擬機 1.選擇自定義 2.直接下一步 3.選擇稍后安裝 4.設置虛擬機名和安裝位置 5.配置處理器&#xff08;處理器數量&#xff1a;4、每個處理器的內核&#xff1a;2&#xff09; 6. 內存選擇 7.網絡類型 8. IO控制器類型-默認推薦 9.磁盤類型-默認推薦 10.選擇虛擬磁…

JS代碼動態打印404頁面源碼

JS代碼動態打印404頁面源碼&#xff0c;適合做網站錯誤頁&#xff0c;具有js動態打印效果&#xff0c;喜歡的朋友可以拿去 源碼由HTMLCSSJS組成&#xff0c;記事本打開源碼文件可以進行內容文字之類的修改&#xff0c;雙擊html文件可以本地運行效果&#xff0c;也可以上傳到服務…

Redis 7.x 系列【22】主從復制配置項

有道無術&#xff0c;術尚可求&#xff0c;有術無道&#xff0c;止于術。 本系列Redis 版本 7.2.5 源碼地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目錄 1. 前言2. 配置說明2.1 replicaof2.2 masterauth2.3 masteruser2.4 replica-serve-sta…

Linux udp編程

我最近開了幾個專欄&#xff0c;誠信互三&#xff01; > |||《算法專欄》&#xff1a;&#xff1a;刷題教程來自網站《代碼隨想錄》。||| > |||《C專欄》&#xff1a;&#xff1a;記錄我學習C的經歷&#xff0c;看完你一定會有收獲。||| > |||《Linux專欄》&#xff1…

Go中gin框架的*gin.Context參數常見實用方法

梗概&#xff1a; *gin.Context是處理HTTP請求的核心。ctx代表"context"&#xff08;上下文&#xff09;&#xff0c;它包含了處理請求所需的所有信息和方法&#xff0c;例如請求數據、響應構建器、路由參數等。 基本的格式&#xff1a; func SomeHandler(ctx *gi…

空間計量模型及 Stata 具體操作步驟

目錄 一、引言 二、空間計量模型理論原理 空間自回歸模型&#xff08;SAR&#xff09;&#xff1a; 空間誤差模型&#xff08;SEM&#xff09;&#xff1a;&#xff0c; 空間杜賓模型&#xff08;SDM&#xff09;&#xff1a; 三、實證模型構建 四、數據準備 五、Stata …

14-56 劍和詩人30 - IaC、PaC 和 OaC 在云成功中的作用

介紹 隨著各大企業在 2024 年加速采用云計算&#xff0c;基礎設施即代碼 (IaC)、策略即代碼 (PaC) 和優化即代碼 (OaC) 已成為成功實現云遷移、IT 現代化和業務轉型的關鍵功能。 讓我在云計劃的背景下全面了解這些代碼功能的當前狀態。我們將研究現代云基礎設施趨勢、IaC、Pa…

【電路筆記】-C類放大器

C類放大器 文章目錄 C類放大器1、概述2、C類放大介紹3、C類放大器的功能4、C 類放大器的效率5、C類放大器的應用:倍頻器6、總結1、概述 盡管存在差異,但我們在之前有關 A 類、B 類和 AB 類放大器的文章中已經看到,這三類放大器是線性或部分線性的,因為它們在放大過程中再現…

Collection 和 Collections 的區別與用法

Collection 和 Collections 的區別與用法 1、Collection 接口1.1 主要特點1.2 常見方法 2、 Collections 工具類2.1 主要特點2.2 常見方法 3、示例代碼3.1 使用 Collection 接口3.2 使用 Collections 工具類 4、總結 &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收…

STM32學習歷程(day6)

EXTI外部中斷使用教程 首先先看下EXTI的框圖 看這個框圖就能知道要先初始化GPIO外設 那么和前面一樣 1、先RCC使能時鐘 2、配置GPIO 選擇端口為輸入模式&#xff0c; 3、配置AFIO&#xff0c;選擇我們用的GPIO連接到后面的EXTI 4、配置EXTI&#xff0c;選擇邊沿觸發方式…

LVS實驗

LVS實驗 nginx1 RS1 192.168.11.137 nginx2 RS2 192.168.11.138 test4 調度器 ens33 192.168.11.135 ens36 12.0.0.1 test2 客戶端 12.0.0.10 一、test4 配置兩張網卡地址信息 [roottest4 network-scripts]# cat ifcfg-ens33 TYPEEthernet BOOTPROTOstatic DEFROUTEyes DEVIC…

詳解平面DP(上)

前言 其實平面DP和正常的dp沒有什么本質上的區別&#xff0c;只不過是在二維的面上進行DP&#xff0c;而且&#xff0c;客觀的說&#xff0c;其實和遞推沒有什么區別&#xff0c;不要把他想的太難了 講解 本蒻雞思前想后&#xff0c;好像關于平面DP的理論知識好像沒有什么&a…

前后端分離系統

前后端分離是一種現代軟件架構模式&#xff0c;特別適用于Web應用開發&#xff0c;它強調將用戶界面&#xff08;前端&#xff09;與服務器端應用邏輯&#xff08;后端&#xff09;相分離。兩者通過API接口進行數據交互。這種架構模式的主要優勢在于提高開發效率、維護性和可擴…

Git命令常規操作

目錄 常用操作示意圖 文件的狀態變化周期 1. 創建文件 2. 修改原有文件 3. 刪除原有文件 沒有添加到暫存區的數據直接 rm 刪除即可&#xff1a; 對于添加到暫存區的數據 文件或目錄&#xff1a; 4. 重命名暫存區數據 5. 查看歷史記錄 6. 還原歷史數據 恢復過程的原…

最新深度技術Win7精簡版系統:免費下載!

在Win7電腦操作中&#xff0c;用戶想要給電腦安裝上深度技術Win7精簡版系統&#xff0c;但不知道去哪里才能找到該系統版本&#xff1f;接下來系統之家小編給大家帶來了深度技術Win7系統精簡版本的下載地址&#xff0c;方便大家點擊下載安裝。系統安裝步驟已簡化&#xff0c;新…