国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

藍(lán)橋杯刷題第二十五天

這篇具有很好參考價(jià)值的文章主要介紹了藍(lán)橋杯刷題第二十五天。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第一題:全球變暖

題目描述

你有一張某海域?NxN?像素的照片,"."表示海洋、"#"表示陸地,如下所示:

.......

.##....

.##....

....##.

..####.

...###.

.......

其中"上下左右"四個(gè)方向上連在一起的一片陸地組成一座島嶼。例如上圖就有 2 座島嶼。

由于全球變暖導(dǎo)致了海面上升,科學(xué)家預(yù)測(cè)未來(lái)幾十年,島嶼邊緣一個(gè)像素的范圍會(huì)被海水淹沒(méi)。具體來(lái)說(shuō)如果一塊陸地像素與海洋相鄰(上下左右四個(gè)相鄰像素中有海洋),它就會(huì)被淹沒(méi)。

例如上圖中的海域未來(lái)會(huì)變成如下樣子:

.......

.......

.......

.......

....#..

.......

.......

請(qǐng)你計(jì)算:依照科學(xué)家的預(yù)測(cè),照片中有多少島嶼會(huì)被完全淹沒(méi)。

輸入描述

第一行包含一個(gè)整數(shù) N?(1≤N≤1000)。

以下?N?行?N?列代表一張海域照片。

照片保證第 1 行、第 1 列的像素都是海洋。、

輸出一個(gè)整數(shù)表示答案。

輸入輸出樣例

示例

輸入

7
.......
.##....
.##....
....##.
..####.
...###.
.......

輸出

1

?dfs,島嶼問(wèn)題

一個(gè)島嶼不會(huì)被淹沒(méi),要有一塊大陸上下左右都不和海洋相鄰

flag表示一個(gè)島嶼中有一塊大陸是這樣的,就不需要再遍歷了

其余情況繼續(xù)遍歷,并且把對(duì)應(yīng)變成海洋,這里用*來(lái)代替,就不用開(kāi)狀態(tài)數(shù)組了

#include<iostream>
#include<queue>
using namespace std;

const int N = 1010;
char g[N][N];
int n, cnt, olds, news;
int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1};
bool flag;

void dfs(int u, int v){
  if(!flag) {
    cnt = 0;
    for(int i = 0; i < 4; i++){
      int x = dx[i] + u, y = dy[i] + v;
      if(g[x][y] != '.') cnt++;
    }
    if(cnt == 4) {
      news++;
      flag = true;
    }
  }

  g[u][v] = '*';
  for(int i = 0; i < 4; i++){
    int x = dx[i] + u, y = dy[i] + v;
    if(x >= 1 && x <= n && y >= 1 && y <= n && g[x][y] == '#')
      dfs(x, y);
  }

}

int main(){
  cin>>n;

  for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
      cin>>g[i][j];

  for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
      if(g[i][j] == '#'){
        olds++;
        flag = false;
        dfs(i ,j);
      }

  cout<<olds-news<<endl;
  return 0;
}

?新的方法,叫什么弗拉基米得算法,通過(guò)這可以遍歷到每個(gè)連通塊中的各個(gè)陸地

首先遍歷,如果當(dāng)前沒(méi)有被遍歷,而且為陸地,比較邊界數(shù)量和總數(shù)量得值,如果相等,即要被淹沒(méi),所以就要加進(jìn)去

然后是一個(gè)BFS,使用stl隊(duì)列實(shí)現(xiàn),如果該陸地相鄰有海洋,那么他就是邊界

是陸地而且沒(méi)有遍歷過(guò)的話,就放進(jìn)隊(duì)列再找

#include<iostream>
#include<queue>
using namespace std;

const int N = 1010;
char g[N][N];
bool st[N][N];
int n;
int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1};

void dfs(int ax,int ay, int& total, int& bound){
    queue<pair<int, int>> q;
    q.push({ax, ay});
    st[ax][ay] = true;
    
    while(q.size()){
        auto t = q.front();
        q.pop();
        total++;
        bool is_bound = false;
        
        for(int i = 0; i < 4; i++){
            int x = t.first + dx[i], y = t.second + dy[i];
            if(x < 1 || x > n && y < 1 || y > n ) continue;
            if(st[x][y]) continue;
            if(g[x][y] == '.'){
                is_bound = true;
                continue;
            }
            q.push({x, y});
            st[x][y] = true;
        }
        if(is_bound) bound++;
    }
    
}

int main(){
  cin>>n;

  for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
      cin>>g[i][j];

  int cnt = 0;
  for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
        if(!st[i][j] && g[i][j] == '#'){
            int total = 0, bound = 0;
            dfs(i ,j ,total, bound);
            if(total == bound)
                cnt++;
        }
    
  cout<<cnt<<endl;  
  return 0;
}

第四題:搬磚

問(wèn)題描述

這天,小明在搬磚。

他一共有?n?塊磚, 他發(fā)現(xiàn)第?i?磚的重量為 wi?, 價(jià)值為 vi??。他突然想從這些 磚中選一些出來(lái)從下到上堆成一座塔, 并且對(duì)于塔中的每一塊磚來(lái)說(shuō), 它上面 所有磚的重量和不能超過(guò)它自身的價(jià)值。

他想知道這樣堆成的塔的總價(jià)值(即塔中所有磚塊的價(jià)值和)最大是多少。

輸入格式

輸入共 n+1?行, 第一行為一個(gè)正整數(shù)?n, 表示磚塊的數(shù)量。

后面?n?行, 每行兩個(gè)正整數(shù) wi?,vi??分別表示每塊磚的重量和價(jià)值。

輸出格式

一行, 一個(gè)整數(shù)表示答案。

樣例說(shuō)明

選擇第?1、2、4塊磚, 從上到下按照?2、1、4 的順序堆成一座塔, 總價(jià)值 為?4+1+5=10

評(píng)測(cè)用例規(guī)模與約定

對(duì)于?20%?的數(shù)據(jù), 保證 0n≤10;

對(duì)于?100%?的數(shù)據(jù), 保證 n≤1000;wi?≤20;vi?≤20000?。

樣例輸入

5
4 4
1 1
5 2
5 5
4 3

樣例輸出

10

明確排序指標(biāo)很關(guān)鍵,這是數(shù)學(xué),要推導(dǎo)和多做題

然后剩下就是01背包問(wèn)題了,直接套模板

j <= 2000 因?yàn)轭}目范圍文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-407744.html

#include<iostream>
#include<algorithm>
using namespace std;

typedef pair<int, int> PII;
const int N = 1010;
PII a[N];
int n, f[20004];

bool cmp(PII x, PII y){
  return x.first + x.second < y.first + y.second;
}

int main(){
  cin>>n;

  for(int i = 0; i < n ; i++){
    int w, v;
    cin>>w>>v;
    a[i] = {w, v};
  }

  sort(a, a + n, cmp);
  for(int i = 0; i < n; i++){
    int w = a[i].first, v = a[i].second;
    for(int j = 20000; j >= w; j--)
      if(v >= j - w) f[j] = max(f[j], f[j - w] + v);
  }
  
  int maxv = 0;
  for(int i = 0; i <= 20000; i++) maxv = max(maxv, f[i]);

  cout<<maxv<<endl;
  return 0;
}

到了這里,關(guān)于藍(lán)橋杯刷題第二十五天的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 藍(lán)橋杯刷題014——求階乘(二分法)

    藍(lán)橋杯刷題014——求階乘(二分法)

    藍(lán)橋杯2022省賽題目 問(wèn)題描述 滿足?N?! 的末尾恰好有 ?K?個(gè) 0 的最小的?N?是多少? 如果這樣的?N?不存在輸出??1?。 輸入格式 一個(gè)整數(shù)?K?。 輸出格式 一個(gè)整數(shù)代表答案。 樣例輸入 樣例輸出 評(píng)測(cè)用例規(guī)模與約定 對(duì)于?30%?的數(shù)據(jù), 1≤K≤10^6. 對(duì)于?100%?的數(shù)據(jù), 1≤K≤10^

    2023年04月12日
    瀏覽(18)
  • 藍(lán)橋杯刷題015——最少刷題數(shù)(二分法+前綴和)

    藍(lán)橋杯刷題015——最少刷題數(shù)(二分法+前綴和)

    問(wèn)題描述 小藍(lán)老師教的編程課有 ?N?名學(xué)生 , 編號(hào)依次是 1…N ?。 第?i?號(hào)學(xué)生這學(xué)期刷題的數(shù)量是?Ai?? 。 對(duì)于每一名學(xué)生, 請(qǐng)你計(jì)算他 至少 還要再刷多少道題 , 才能使得 全班刷題比他多的學(xué)生數(shù)不超過(guò)刷題比他少的學(xué)生數(shù)。 輸入格式 第一行包含一個(gè)正整數(shù)?N?。 第二

    2023年04月14日
    瀏覽(18)
  • 藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)6天

    藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)6天

    作者:指針不指南嗎 專(zhuān)欄:藍(lán)橋杯倒計(jì)時(shí)沖刺 ??馬上就要藍(lán)橋杯了,最后的這幾天尤為重要,不可懈怠哦?? 題目 鏈接: 4941. 湊數(shù) - AcWing題庫(kù) 初始時(shí),n=0。 每一輪操作都要依次完成兩個(gè)步驟: 第一步,任選一個(gè) 非負(fù) 整數(shù) a,將 n 增加 a,這一步所需付出的代價(jià)為 a。 第二

    2023年04月08日
    瀏覽(123)
  • 藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)1天

    藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)1天

    作者:指針不指南嗎 專(zhuān)欄:藍(lán)橋杯倒計(jì)時(shí)沖刺 ??藍(lán)橋杯加油,大家一定可以?? 我是菜菜,最近容易我犯的錯(cuò)誤總結(jié) + 一些tips 各位藍(lán)橋杯加油加油 當(dāng)輸入輸出數(shù)據(jù)不超過(guò) 1e6 時(shí), scanf printf 和 cin cout 是沒(méi)有差距的; 超過(guò)這個(gè)數(shù)據(jù)范圍時(shí),就是用 scanf printf 多次調(diào)式,自己手

    2023年04月09日
    瀏覽(35)
  • 藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)2天

    藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)2天

    作者:指針不指南嗎 專(zhuān)欄:藍(lán)橋杯倒計(jì)時(shí)沖刺 ??馬上就要藍(lán)橋杯了,最后的這幾天尤為重要,不可懈怠哦?? 題目 鏈接: 854. Floyd求最短路 - AcWing題庫(kù) 給定一個(gè) n 個(gè)點(diǎn) m 條邊的有向圖,圖中可能存在重邊和自環(huán),邊權(quán)可能為負(fù)數(shù)。 再給定 k 個(gè)詢問(wèn),每個(gè)詢問(wèn)包含兩個(gè)整數(shù)

    2023年04月10日
    瀏覽(31)
  • 藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)3天

    藍(lán)橋杯刷題沖刺 | 倒計(jì)時(shí)3天

    作者:指針不指南嗎 專(zhuān)欄:藍(lán)橋杯倒計(jì)時(shí)沖刺 ??馬上就要藍(lán)橋杯了,最后的這幾天尤為重要,不可懈怠哦?? 題目 鏈接: 790. 數(shù)的三次方根 - AcWing題庫(kù) 給定一個(gè)浮點(diǎn)數(shù) n,求它的三次方根。 輸入格式 共一行,包含一個(gè)浮點(diǎn)數(shù) n。 輸出格式 共一行,包含一個(gè)浮點(diǎn)數(shù),表示問(wèn)

    2023年04月09日
    瀏覽(32)
  • 藍(lán)橋杯刷題016——最大子矩陣(尺取法+單調(diào)隊(duì)列)

    藍(lán)橋杯刷題016——最大子矩陣(尺取法+單調(diào)隊(duì)列)

    題目來(lái)源:最大子矩陣 - 藍(lán)橋云課 (lanqiao.cn) 問(wèn)題描述 小明有一個(gè)大小為 N×M?的矩陣, 可以理解為一個(gè)?N?行?M?列的二維數(shù)組。 我們定義一個(gè)矩陣?m?的 穩(wěn)定度?f(m) ?為 f(m)=max(m)?min(m) , 其中 max(m)?表示矩陣?m?中的最大值,?min(m)?表示矩陣?m?中的最小值。 現(xiàn)在小明想要從

    2023年04月16日
    瀏覽(28)
  • 【藍(lán)橋杯刷題沖刺輔導(dǎo)】掌握遞歸·DFS解題套路,這一文足以?

    【藍(lán)橋杯刷題沖刺輔導(dǎo)】掌握遞歸·DFS解題套路,這一文足以?

    大家好,我是安然無(wú)虞。 目錄 一、刷題前和鐵汁們嘮一嘮 1.刷題前須知 2.刷題時(shí)套路 1套路 2背下列常用數(shù) ? 3投機(jī)取巧:根據(jù)數(shù)據(jù)范圍確定算法 ? 4珍惜每分每秒 · 直接復(fù)制粘貼? 5輸入輸出函數(shù)的使用 二、刷題強(qiáng)化 例一:遞歸實(shí)現(xiàn)指數(shù)型枚舉 例二:遞歸實(shí)現(xiàn)排列型枚舉

    2023年04月10日
    瀏覽(33)
  • 2023-5-25第二十五天

    attach附上 attack攻擊 vargay奇特,好奇 fold折疊,合攏,包住 suspect懷疑 respect尊敬 costume服裝 implement實(shí)施,執(zhí)行,使生效 distract使分心 distric區(qū) separate abortion流產(chǎn) abortive失敗的 amount convent修女 conventional普通的,常規(guī)的 convene召開(kāi),召集 wise明智的,高明的,精通的 possible

    2024年02月07日
    瀏覽(18)
  • 【C++刷題】經(jīng)典簡(jiǎn)單題第二輯

    【C++刷題】經(jīng)典簡(jiǎn)單題第二輯

    回文排列 URL化 配對(duì)交換 遞歸乘法 階乘尾數(shù) 二進(jìn)制鏈表轉(zhuǎn)整數(shù) 從鏈表中刪去總和值為零的連續(xù)節(jié)點(diǎn) 括號(hào)的最大嵌套深度 整理字符串 奇偶樹(shù) 將句子排序 最長(zhǎng)和諧子序列

    2024年02月09日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包