藍橋杯第2章:基礎算法_3

1.聰明的小羊肖恩 - 藍橋云課 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int mod=100000007;
const int N=200010;
int n,L,R;
int a[N];
LL calc(int v){//計算數組a中兩個數之和小于等于v的數對數量int l=1,r=n;LL ans=0;while(l<r){while(l<r&&a[l]+a[r]>v){r--;//不符合條件需要減小值,}//符合條件則通過r-l計算ans +=r-l;//[l,r]這個區間內都可以,l與[l+1,r]中有r-l種組合l++;}return ans;
}
void solve(){cin>>n>>L>>R;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);cout<<calc(R)-calc(L-1)<<'\n';
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

?1.神奇的數組 - 藍橋云課 (lanqiao.cn)

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 10;
int n, res;
int s[N], a[N], c[N];
inline void solve()
{cin >> n;for (int i = 1; i <= n; i ++ ) cin >> a[i], s[i] = s[i - 1] + a[i];for (int i = 1; i <= n; i ++ ) c[i] = c[i - 1] ^ a[i];//異或前綴和for (int i = 1,j=0; i <= n; i ++ ){//雙指針模板while (((s[j] - s[i - 1]) == (c[j] ^ c[i - 1])) && j <= n) j ++;res += (j - i);//是個數而不是長度,最后一個位置是不符合條件的}cout << res << '\n';
}
signed main(){cin.tie(nullptr) -> sync_with_stdio(0);solve();return 0;
}

1.可湊成的最大花束數 - 藍橋云課 (lanqiao.cn)

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=2e5+5;
int a[N];int n,k;
int check(int mid){//花束個數int res=0;//有效花束總數for(int i=1;i<=n;i++){res+=min(mid,a[i]);//每個花的貢獻值}//res表示的是所有花的數量 然后 /mid得到的是一束花中的花朵數return res/mid;//一束中花數
}
void solve()
{cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];int l=0,r=2e14+1;while(l<r){int mid=(l+r+1)/2;if(check(mid)>=k) l=mid;//如果一束中的花數大于k,就可以包裹成更多的花束else r=mid-1;//找最多的向右邊找}cout<<l;
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

1.最大通過數 - 藍橋云課 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
int n,m,k;
const int N=2e5+2;
typedef long long ll;
ll a[N]={0},b[N]={0};
bool check(ll mid){//輸入通過的關卡數之和
//枚舉每一種情況 然后取最小值 找到通過這么多關卡所需要的最小水晶數ll t=mid;ll sum=0;ll mn=1e14;while(t--){sum=0;if(t>n)continue;//防止越界if(mid-t>m)break;//防止越界sum+=a[t]+b[mid-t];mn=1ll*min(mn,sum);}return mn<=k;//下能通過的關卡數更多
}
int main()
{cin>>n>>m>>k;//a[i]表示通過前i個關卡需要的水晶數量是a[i]for(int i=1;i<=n;i++){cin>>a[i];a[i]+=a[i-1];}for(int i=1;i<=m;i++){cin>>b[i];b[i]+=b[i-1];}//前綴和ll l=0,r=n+m+2;while(l<r){ll mid=(l+r+1)/2;//右-需要還if(check(mid))l=mid;else r=mid-1;//右-}cout<<r<<'\n';return 0;
}

?1.體育健將 - 藍橋云課 (lanqiao.cn)


// 解題思路: 枚舉小藍參加的最后一個項目item[i],則剩余時間為temp - item[i].et,
// 然后我們按總時間(參賽+休息)排序,并求出其前綴和數組s,s[i]的含義是前i件項目
// 的時間和,準備好這些之后,二分答案。check函數我們將枚舉的答案x帶入s數組中,求出
// 前x件項目時間之和,隨后與剩余時間time比較,這里有個細節是,如果前x件項目中包含
// 枚舉的i,我們需要將其刪去并將s[x]改為s[x+1]。
#include <bits/stdc++.h>
using namespace std;
const int N = 4e5;
int n,k,ans;
long long s[N];
struct node {int et,br;
}item[N];
bool cmp(const node &a, const node &b) {return a.et + a.br <= b.et + b.br;
}
bool check(int x, int y,int time) {if(x < y) { if(s[x] <= time) return true;return false;}else {if(x + 1 > n) return false;//超出了if(s[x + 1] - item[y].br <= time) return true;//還是比總時間更小的else return false;//減去這個比賽}
}
int main() {ios::sync_with_stdio(false),cin.tie(0);cin>>n>>k;for(int i = 1; i <= n; i ++) cin>>item[i].et;for(int i = 1; i <= n; i ++) cin>>item[i].br;sort(item+1,item+1+n,cmp);//sort可以保證選的都是用的時間少的 //所以前綴和數組才右意義for(int i = 1; i <= n; i ++) s[i] = s[i-1] + item[i].et + item[i].br;for(int i = 1; i <= n; i ++) {//枚舉第i個比賽最后參加int temp = k;if(temp < item[i].et) continue;//總時間小于這個比賽的參加時間 肯定不行temp -= item[i].et;//最后參加這個比賽int l = 0, r = n;while(l < r) {int mid = (l + r + 1) >> 1;//參加mid個比賽if(check(mid,i,temp)) l = mid;else r = mid-1;}ans = max(r+1,ans);//加上一個1}cout<<ans;return 0;
}

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

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

相關文章

[vue error] TypeError: AutoImportis not a function

問題詳情 問題描述: element plus按需導入后&#xff0c;啟動項目報錯&#xff1a; 問題解決 將unplugin-auto-import 回退到0.16.1 npm install unplugin-auto-import0.16.1 安裝完后再次運行就好了

差分題練習(區間更新)

一、差分的特點和原理 對于一個數組a[]&#xff0c;差分數組diff[]的定義是: 對差分數組做前綴和可以還原為原數組: 利用差分數組可以實現快速的區間修改&#xff0c;下面是將區間[l, r]都加上x的方法: diff[l] x; diff[r 1] - x;在修改完成后&#xff0c;需要做前綴和恢復…

PYTHON 自動化辦公:壓縮圖片(PIL)

1、介紹 在辦公還是學習過程中&#xff0c;難免會遇到上傳照片的問題。然而照片的大小限制一直都是個問題&#xff0c;例如照片限制在200Kb之內&#xff0c;雖然有很多圖像壓縮技術可以實現&#xff0c;但從圖像處理的專業來說&#xff0c;可以利用代碼實現 這里使用的庫函數是…

云計算之道:學習方法、實踐經驗與行業展望

一、云計算的理論 云計算是一種基于網絡的計算模型&#xff0c;通過將計算資源、存儲資源和服務等提供給用戶&#xff0c;實現按需獲取、靈活部署和按照使用量付費等特點。云計算的基本原理包括以下幾個方面&#xff1a; 虛擬化技術&#xff1a;云計算基于虛擬化技術&#xff…

Vue2-(jeecgBoot) img大圖預覽

img 圖片展示&#xff0c;大圖預覽失效解決&#xff0c;代碼中使用的預覽組件為&#xff1a;vue-photo-preview 使用場景&#xff1a;詳情頁面-model.images循環展示&#xff0c;點擊查看大圖&#xff0c;不能點擊。 解決方案&#xff1a; 在詳情數據請求完畢加 this.$previ…

觀成科技:加密C2框架Covenant流量分析

工具介紹 Covenant是一個基于.NET的開源C2服務器&#xff0c;可以通過HTTP/HTTPS 控制Covenant agent&#xff0c;從而實現對目標的遠程控制。Covenant agent在與C2通信時&#xff0c;使用base64/AES加密載荷的HTTP隧道構建加密通道。亦可選擇使用SSL/TLS標準加密協議&#xf…

Java網絡通信TCP

目錄 TCP兩個核心類 服務端 1.用ServerSocker類創建對象并且手動指定端口號 2.accept阻塞連接服務端與客戶端 3.給客戶端提供處理業務方法 4.處理業務 整體代碼 客戶端 1.創建Socket對象&#xff0c;并連接服務端的ip與端口號 2.獲取Socket流對象&#xff0c;寫入數據…

Linux: Network: socket: sendto 如果返回0,是否一定代表發送成功?

最近遇到一個問題&#xff0c;雖然應用層使用的系統調用send已經返回成功&#xff0c;而且沒有錯誤日志產生&#xff0c;也沒有errno的設置。那是不是代表一定是沒有問題&#xff1f;從抓包的結果看&#xff0c;雖然上層應用已經顯示發出去&#xff0c;但是實際抓包的時候&…

[python隊列廣搜]請佩戴好口罩

請佩戴好口罩 題目描述 疫情當下&#xff0c;希望同學們都認真佩戴口罩&#xff0c;保護自己&#xff0c;保護他人。 現假設有一個n*n的網格&#xff0c;每個人分別站在網格中的一個方格上&#xff0c;人們可以選擇佩戴/不佩戴口罩&#xff0c;口罩對于病毒的傳播有如下影響&…

被曝隱瞞添加劑、夸大產品功效,東方甄選再陷選品風波

號稱專注為客戶細心甄選好物的東方甄選&#xff08;&#xff08;HK:01797&#xff09;&#xff09;&#xff0c;又攤上事兒了。 近日&#xff0c;海關總署發布公告稱&#xff0c;美國飲料生產企業JERRY&SONS PHARMACEUTICAL INC在申請注冊時提供了虛假材料&#xff0c;且未…

moviepy用法大全

1.引用 from moviepy.editor import * 2. 載入 2.1 載入視頻 video = VideoFileClip(filePath) 2.2 載入音頻 audio=AudioFileClip(filePath) 2.3 載入圖片 img = (ImageClip(videopath+videofengpi) # 水印持續時間 .set_duration(start_video_clip_begin.duration) …

C2_W2_Assignment_吳恩達_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次練習中&#xff0c;您將使用神經網絡來識別0-9的手寫數字。 Outline 1 - Packages 2 - ReLU Activatio…

c語言經典測試題9

1.題1 #include <stdio.h> int main() { int i 1; sizeof(i); printf("%d\n", i); return 0; } 上述代碼運行結果是什么呢&#xff1f; 我們來分析一下&#xff1a;其實這題的難點就是sizeof操作后i的結果是否會改變&#xff0c;首先我們創建了一個整型i&a…

LeetCode刷題小記 六、【棧與隊列】

1.棧與隊列 文章目錄 1.棧與隊列寫在前面1.1棧與隊列理論基礎1.2用棧實現隊列1.3用隊列實現棧1.4有效的括號1.5刪除字符串中的所有相鄰重復項1.6逆波蘭表達式求值1.7滑動窗口最大值1.8前K個高頻元素 Reference 寫在前面 本系列筆記主要作為筆者刷題的題解&#xff0c;所用的語…

分布式基礎 --- Leader election

分布式基礎 --- Leader election 為什么需要leader electionRing electionBully Algorithm 為什么需要leader election 在一組集群中, 需要選出一個leader來承擔一些特別的任務, 比如 協調和控制系統操作&#xff1a;領導者負責協調和控制整個分布式系統的操作。它可以接收和處…

one4all 排坑記錄

one4all 排坑記錄 任務踩坑回顧動作踩坑動作踩坑動作新一步測試Habitat-sim 測試habitat-lab繼續ONE4ALL 任務 看了《One-4-All: Neural Potential Fields for Embodied Navigation》這篇論文&#xff0c;感覺挺有意思&#xff0c;他也開源了代碼。視覺語言導航是我一直想做的…

windows上elasticsearch的ik分詞器的安裝

下載 下載地址 在elasticsearch下的plugins文件夾下創建ik的文件夾 下載的ik壓縮包解壓到plugins/ik 重啟elasticsearch 驗證 http://ip:9200/_cat/plugins

python筆記_運算符優先級

運算符描述算術運算符&#xff08;x&#xff09;括號內優先級最高**乘方 * / // % 乘 矩陣乘 除 整除 取余 _ 加 減 位運算符 >> << 右移 左移 &按位與^按位異或|按位或比較運算符 in not in is is not < < > > ! 判斷兩個變量是否相同 判…

SpringBoot3-核心原理

1. 事件和監聽器 1. 生命周期監聽 場景&#xff1a;監聽應用的生命周期 1. 監聽器-SpringApplicationRunListener 自定義SpringApplicationRunListener來監聽事件&#xff1b; 編寫SpringApplicationRunListener 實現類在 META-INF/spring.factories 中配置 org.springfram…

【藍橋杯】錯誤票據

今天是2024年3月1號&#xff0c;藍橋杯比賽還有一個月的時間&#xff0c;雖說自己不指望拿獎吧&#xff0c;但是還是有些莫i名的焦慮&#xff0c;這道題目都做不出來&#xff0c;感覺自己真的有點菜啊&#xff01;但是還好啦&#xff0c;我覺得是因為我沒有題感&#xff0c;慢慢…