Acwing枚舉、模擬與排序(一)

連號區間數

原題鏈接:https://www.acwing.com/problem/content/1212/

初始最小值和最大值的依據是題目給出的數據范圍。只要在數據范圍之外就可以。
連號的時候,相鄰元素元素之間,差值為1。那么區間右邊界和左邊界,的值的差,就應該等于下標索引的差值。

#include"bits/stdc++.h"using namespace std;
int P[10010];
int N;int main() {cin >> N;for (int i = 0; i < N; i++)cin >> P[i];int res = 0;for (int i = 0; i < N; i++) {int minn = 10010;int maxx = 0;for (int j = i; j < N; j++) {minn = min(minn, P[j]);maxx = max(maxx, P[j]);if (maxx - minn == j - i)res++;}}cout << res;return 0;
}

遞增三元組

原題鏈接:https://www.acwing.com/problem/content/1238/

如果選擇暴力,那么復雜度是三次方。
數據范圍是1e5,這時間復雜度是不被允許的。(暴力杯或許可以)
時間復雜度應控制到 n log ? n n\log n nlogn,意味著最多只能枚舉一個數組
枚舉A或C是等價的,都是在兩邊。
以A為例,枚舉A的時候,在考慮B和C的時候,B和C都不是完全獨立的,B和C之間有相互限制。統計數量的時候不能用簡單的乘法相乘。
如果選擇枚舉B,那么A和C之間是相互獨立的。 A的判斷條件就是小于B,C的判斷條件就是大于B。
當前B的取值的合法三元組的數量,就是合法的A的數量乘合法的C的數量。
那么現在的問題就是求合法的A和合法的C的數量。

前綴和

需要兩個數組:

  • cnt[i]:表示在Ai這個值出現多少次
  • S[i]:表示在A[0,i]出現多少次

A中多少個數小于Bi,就是求S[Bi-1]的值。
C中多少個數大于Bi,就是求S[N-Bi]的值,N為數據范圍的最大值。
前綴和的時間復雜度為n

#include"bits/stdc++.h"using namespace std;
typedef long long LL;
const int N = 1e5 + 10;
int a[N], b[N], c[N];
int as[N], cs[N];
int cnt[N], s[N];
int n;int main() {scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%d", a + i), a[i]++;for (int i = 0; i < n; i++)scanf("%d", b + i), b[i]++;for (int i = 0; i < n; i++)scanf("%d", c + i), c[i]++;for (int i = 0; i < n; i++) cnt[a[i]]++;for (int i = 1; i < N; i++)s[i] = s[i - 1] + cnt[i];for (int i = 0; i < n; i++)as[i] = s[b[i] - 1];memset(cnt, 0, sizeof cnt);memset(s, 0, sizeof s);for (int i = 0; i < n; i++) cnt[c[i]]++;for (int i = 1; i < N; i++)s[i] = s[i - 1] + cnt[i];for (int i = 0; i < n; i++)cs[i] = s[N - 1] - s[b[i]];LL res = 0;for (int i = 0; i < n; i++) res += (LL) as[i] * cs[i];cout << res << endl;return 0;
}

特別數的和

原題鏈接:https://www.acwing.com/problem/content/1247/

一道簡單模擬,for循環的范圍參考題目給的數據范圍。

#include"bits/stdc++.h"using namespace std;int n, res;int main() {scanf("%d", &n);for (int i = 1; i <= n; i++) {int x = i;while (x) {int t = x % 10;x /= 10;if (t == 2 || t == 0 || t == 1 || t == 9) {res += i;break;}}}cout << res << endl;return 0;
}

錯誤票據

原題鏈接:https://www.acwing.com/problem/content/1206/

排序

#include"bits/stdc++.h"using namespace std;
int n;
int a[100010];int main() {int cnt;cin >> cnt;string line;getline(cin, line);while (cnt--) {getline(cin, line);stringstream ssin(line);while (ssin >> a[n++]);}sort(a, a + n);int res1, res2;for (int i = 1; i < n; i++) {if (a[i] == a[i - 1])res2 = a[i];else if (a[i] >= a[i - 1] + 2)res1 = a[i] - 1;}printf("%d %d", res1, res2);return 0;
}

忽略行數讀入

#include"bits/stdc++.h"using namespace std;
int n;
int a[100010];int main() {int cnt;cin >> cnt;int maxx=0,minn=1e5;while(cin>>n){a[n]++;maxx=max(maxx,n);minn=min(minn,n);}int res1,res2;for(int i=minn;i<=maxx;i++){if(a[i]==0)res1=i;else if(a[i]==2)res2=i;}printf("%d %d",res1,res2);return 0;
}

歸并排序

原題鏈接:https://www.acwing.com/problem/content/789/

#include"bits/stdc++.h"using namespace std;
int n;
int q[100010], tmp[100010];void merge_sort(int q[], int l, int r) {if (l >= r)return;int mid = l + r >> 1;merge_sort(q, 1, mid), merge_sort(q, mid + 1, r);int k = 0, i = l, j = mid + 1;while (i <= mid && j <= r) {if (q[i] <= q[j])tmp[k++] = q[i++];else tmp[k++] = q[j++];}while (i <= mid)tmp[k++] = q[i++];while (j <= r)tmp[k++][q++];for (i = l, j = 0; i <= r; i++, j++)q[i] = tmp[i];
}int main() {scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%d", q + i);merge_sort(q, 0, n - 1);for (int i = 0; i < n; i++)printf("%d ", q[i]);return 0;
}

移動距離

原題鏈接:https://www.acwing.com/problem/content/description/1221/

  • 曼哈頓距離: ∣ x 1 ? x 2 ∣ + ∣ y 1 ? y 2 ∣ |x_1-x_2|+|y_1-y_2| x1??x2?+y1??y2?
  • 歐幾里得距離: ( x 1 ? x 2 ) 2 + ( y 1 ? y 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2} (x1??x2?)2+(y1??y2?)2 ?

這道題求的是曼哈頓距離。
行號:n/w
列號:n%w
下標從零開始,如果行號是奇數,那么應將列號翻轉。
找到了一種新的判斷奇偶的方式:x&1

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

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

相關文章

cAdvisor+Prometheus+Grafana 搞定Docker容器監控平臺

cAdvisorPrometheusGrafana cAdvisorPrometheusGrafana 搞定Docker容器監控平臺1、先給虛擬機上傳cadvisor2、What is Prometheus?2.1、架構圖 3、利用docker安裝普羅米修斯4、安裝grafana cAdvisorPrometheusGrafana 搞定Docker容器監控平臺 1、先給虛擬機上傳cadvisor cAd…

MySQL事務和鎖機制

MySQL技術——事務和鎖機制 一、事務&#xff08;1&#xff09;概述&#xff08;2&#xff09;ACID特性&#xff08;3&#xff09;事務并發存在的問題&#xff08;4&#xff09;事務的隔離級別 二、鎖機制&#xff08;1&#xff09;鎖的力度&#xff08;2&#xff09;表的分類&…

網絡編程-編碼與解碼(Protobuf)

編碼與解碼 下面的文字都來自于極客時間 為什么要編解碼呢&#xff1f;因為計算機數據傳輸的是二進制的字節數據 解碼&#xff1a;字節數據 --> 字符串&#xff08;字符數據&#xff09; 編碼&#xff1a;字符串&#xff08;字符數據&#xff09;–> 字節數據 我們在編…

Python 實現海康機器人工業相機 MV-CS050-10GC 的實時顯示視頻流及拍照功能(實時顯示視頻流同時可以進行拍照)

參考鏈接&#xff1a; https://www.cnblogs.com/HanYork/p/17388506.html https://www.cnblogs.com/miracle-luna/p/16960556.html#5138211 Flask搭建流媒體服務器&#xff1a;使用Flask搭建一個流媒體服務器_multipart/x-mixed-replace; boundaryframe-CSDN博客

公共字段自動填充

在開發中經常面臨對于一些公共字段的賦值。 如在下表中&#xff1a; 如何讓程序自動為我們需要賦值的公共字段進行賦值&#xff0c;避免在業務代碼中重復寫這些公共字段的賦值代碼 如下圖所示&#xff1a; 實現思路&#xff1a; 1.自定義注解AutoFill&#xff0c;用于標識需…

linux環境安裝cuda toolkit

1 全新安裝 如果環境中沒安裝過cuda版本&#xff0c; 這種情況下比較簡單。 直接在https://developer.nvidia.com/cuda-toolkit-archive選擇對應版本下載安裝即可。 如下為安裝cuda toolkit 11.8. 2 環境中已經存在其他版本 這種情況下比較復雜一些。 首先要確認最高支持的…

李沐動手學習深度學習——4.2練習

1. 在所有其他參數保持不變的情況下&#xff0c;更改超參數num_hiddens的值&#xff0c;并查看此超參數的變化對結果有何影響。確定此超參數的最佳值。 通過改變隱藏層的數量&#xff0c;導致就是函數擬合復雜度下降&#xff0c;隱藏層過多可能導致過擬合&#xff0c;而過少導…

Git多人合作的推送流程

多人合作時&#xff0c;使用Git進行代碼推動&#xff08;push&#xff09;需要一定的協調和規范&#xff0c;以確保代碼庫的整體健康。以下是一個常見的多人合作時的Git代碼推動流程&#xff1a; 同步主分支&#xff1a; 在推送之前&#xff0c;確保你的本地主分支&#xff08;…

【Java】四大函數式接口

消費型接口Consumer 消費型接口接收一個輸入&#xff0c;沒有返回值 在stream流計算中 forEach() 接收一個消費型接口Consumer用于 遍歷元素 /*** 消費型接口* 接收一個輸入&#xff0c;沒有返回值*/ public class demo01 {public static void main(String[] args) {//TODO 消…

【MySQL】表的內連和外連(重點)

表的連接分為內連和外連。 一、內連接 內連接實際上就是利用 where 子句對兩種表形成的笛卡兒積進行篩選&#xff0c;前面學習的查詢都是內連接&#xff0c;也是在開發過程中使用的最多的連接查詢。 select 字段 from 表1 inner join 表2 on 連接條件 and 其他條件; 注意&…

【數倉】Hadoop集群配置常用參數說明

Hadoop集群中&#xff0c;需要配置的文件主要包括四個 配置核心Hadoop參數&#xff1a; 編輯core-site.xml文件&#xff0c;設置Hadoop集群的基本參數&#xff0c;如文件系統、Hadoop臨時目錄等。 配置HDFS參數&#xff1a; 編輯hdfs-site.xml文件&#xff0c;設置HDFS的相關參…

策略開發:EMA如何計算

EMA的計算原理 EMA 是MA&#xff08;平滑移動平均線&#xff09;的另一種形式。全名“加權指數移動平均線”。 2/13就是12日移動平均線的平滑因子&#xff0c;他的意思是指&#xff1a;給予新價格 2/13的權重&#xff0c;給予過去的EMA 11/13的權重。 在計算的時候第一天的M…

Linux使用基礎命令

1.常用系統工作命令 (1).用echo命令查看SHELL變量的值 qiangziqiangzi-virtual-machine:~$ echo $SHELL /bin/bash(2).查看本機主機名 qiangziqiangzi-virtual-machine:~$ echo $HOSTNAME qiangzi-virtual-machine (3).date命令用于顯示/設置系統的時間或日期 qiangziqian…

Linux多線程服務端編程:使用muduo C++網絡庫 學習筆記 附錄B 從《C++ Primer(第4版)》入手學習C++

這是作者為《C Primer&#xff08;第4版&#xff09;&#xff08;評注版&#xff09;》寫的序言&#xff0c;文中“本書”指的是這本書評注版。 B.1 為什么要學習C 2009年本書作者Stanley Lippman先生應邀來華參加上海祝成科技舉辦的C技術大會&#xff0c;他表示人們現在還用…

MySQL存儲過程和Function

一、存儲過程 MySQL中提供存儲過程和存儲函數機制&#xff0c;將其統稱為存儲程序。 SQL語句要先編譯&#xff0c;然后執行&#xff0c;存儲程序是一組為了完成特定功能的SQL語句&#xff0c;編譯后存到數據庫中。 用戶通過指定存儲程序的名字并給定參數來調用才會執行。 存…

擴展學習|大數據分析的現狀和分類

文獻來源&#xff1a;[1] Mohamed A , Najafabadi M K , Wah Y B ,et al.The state of the art and taxonomy of big data analytics: view from new big data framework[J].Artificial Intelligence Review: An International Science and Engineering Journal, 2020(2):53. 下…

藍橋杯(3.2)

1209. 帶分數 import java.io.*;public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static PrintWriter pw new PrintWriter(new OutputStreamWriter(System.out));static final int N 10;static int n, cnt;static int[…

LabVIEW流量控制系統

LabVIEW流量控制系統 為響應水下航行體操縱舵翼環量控制技術的試驗研究需求&#xff0c;通過LabVIEW開發了一套小量程流量控制系統。該系統能夠滿足特定流量控制范圍及精度要求&#xff0c;展現了其在實驗研究中的經濟性、可靠性和實用性&#xff0c;具有良好的推廣價值。 項…

tritonserver學習之八:redis_caches實踐

tritonserver學習之一&#xff1a;triton使用流程 tritonserver學習之二&#xff1a;tritonserver編譯 tritonserver學習之三&#xff1a;tritonserver運行流程 tritonserver學習之四&#xff1a;命令行解析 tritonserver學習之五&#xff1a;backend實現機制 tritonserv…

【C++初階】內存管理

目錄 一.C語言中的動態內存管理方式 二.C中的內存管理方式 1.new/delete操作內置類型 2.new和delete操作自定義類型 3.淺識拋異常 &#xff08;內存申請失敗&#xff09; 4.new和delete操作自定義類型 三.new和delete的實現原理 1.內置類型 2.自定義類型 一.C語…