訓(xùn)練補(bǔ)題0320

0320校隊(duì)藍(lán)橋杯積分訓(xùn)練賽補(bǔ)題記錄

A:

A題面.png
思路:

動(dòng)態(tài)規(guī)劃圈澈,用一個(gè)二維數(shù)組 dp [ i ] [ j ] 記錄惫周。
dp [ i ] [ j ] 表示在 i 時(shí) gameboy 在位置 j 背包中有 dp [ i ] [ j ] 個(gè)煎餅

代碼:
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int dp[100005][15];
int main(){
    int n;
    int x,t;
    int mt=0;
    while(cin>>n,n){
        memset(dp,0,sizeof(dp));
        for(int i=0;i<n;i++){
            scanf("%d %d",&x,&t);
            dp[t][x]++;
            mt=max(mt,t);
        }
        for(int i=mt;i>=0;i--){
            for(int j=10;j>=0;j--){
                dp[i][j]+=max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1]));
            }
        }
        printf("%d\n",dp[0][5]);
    }
    return 0;
}
心得:

下次再做不出來(lái)腿打斷!?嫡弧递递!

B:

B題面.png
思路:

動(dòng)態(tài)規(guī)劃喷橙,用一個(gè)二維數(shù)組 dp [ i ] [ j ] 記錄。
dp [ i ] [ j ] 表示小智使用了 i 個(gè)精靈球 j 個(gè)體力后能最多能捕捉到 dp [ i ] [ j ] 個(gè)小精靈

代碼:
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdio>
using namespace std;
int dp[1005][505];
int main(){
    int n,m,k;
    cin>>n>>m>>k;
    int a,b;
    for(int i=0;i<k;i++){
        cin>>a>>b;
        for(int j=n;j>=a;j--){
            for(int l=m-1;l>=b;l--){
                dp[j][l]=max(dp[j][l],dp[j-a][l-b]+1);
            }
        }
    }
    cout<<dp[n][m-1]<<" ";
    int t=m-1;
    while(t>0&&dp[n][t-1]==dp[n][m-1])
        t--;
    cout<<m-t;
    return 0;
}
心得:

我是笨逼 over

C:

C題面.png
思路:

動(dòng)態(tài)規(guī)劃登舞,用一個(gè)一維數(shù)組 dp [ i ] 記錄贰逾。
dp [ i ] 表示阿福偷到第i家店時(shí)到手的現(xiàn)金數(shù)量最多為 dp [ i ]

代碼:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100005];
int dp[100005];
int main(){
    int T,n;
    cin>>T;
    while(T--){
        cin>>n;
        for(int i=0;i<n;i++)
            scanf("%d",a+i);
        memset(dp,0,sizeof(dp));
        dp[0]=a[0];
        dp[1]=max(a[0],a[1]);
        for(int i=2;i<n;i++)
            dp[i]=max(dp[i-2]+a[i],dp[i-1]);
        cout<<dp[n-1]<<endl;
    }
    return 0;
}
心得:

馬哥太強(qiáng)了

D:

D題面.png
思路:

并查集模板題

代碼:
#include<iostream>
using namespace std;
int fa[1005];
int get(int x){
    if(fa[x]==x)    
        return x;
    return fa[x]=get(fa[x]);
}
void merge(int x,int y){
    fa[get(x)]=get(y);
}
int main(){
    int t;
    cin>>t;
    int n,m;
    int x,y,ans;
    while(t--){
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            fa[i]=i;
        for(int i=1;i<=m;i++){
            cin>>x>>y;
            merge(x,y);
        }
        ans=0;
        for(int i=1;i<=n;i++)
            if(fa[i]==i)
                ans++;
        cout<<ans<<endl;
    }
    return 0;
}
心得:

555 這次一定記住了

E:

E題面.png
思路:

圖論 dijkstra算法模板題

代碼:
#include<iostream>
#include<queue> 
#include<cstring>
using namespace std;
const int N=2010,M=100010;
int head[N],edge[M],ver[M],Next[M],tot;
int d[N],v[N],n,m,s[N][N];
queue<int>q;
void add(int x,int y,int z){
    if(s[x][y]){
        for(int i=head[x];i;i=Next[i]){
            int now=ver[i];
            if(now==y) {
                edge[i]=min(edge[i],z);
                return;
            }
        }
    }
    ver[++tot]=y;
    edge[tot]=z;
    Next[tot]=head[x];
    head[x]=tot;
    s[x][y]=1;
}
void spfa(){
    memset(d,0x3f,sizeof(d));
    memset(v,0,sizeof(v));
    d[1]=0;
    v[1]=1;
    q.push(1);
    while(q.size()){
        int x=q.front();q.pop();
        v[x]=0;
        for(int i=head[x];i;i=Next[i]){
            int y=ver[i],z=edge[i];
            if(d[y]>d[x]+z){
                d[y]=d[x]+z;
                if(!v[y]){
                    v[y]=1;
                    q.push(y);
                }
            }
        }
    }
}
int main(){
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        int x,y,z;
        cin>>x>>y>>z;
        add(x,y,z);
        add(y,x,z);
    }
    spfa();
    cout<<d[n];
    return 0;
}
心得:

好滴吧 這題我沒(méi)有認(rèn)真看 我攤牌了

F:

F題面.png
思路:

簽到題 復(fù)習(xí)一下歐式篩

代碼:
#include<iostream>
using namespace std;
int n;
int is_prime[100005];
int prime[100005];
void p(){
    int t=0; 
    is_prime[0]=is_prime[1]=1;
    for(int i=2;i<100005;i++){
        if(! is_prime[i])
        prime[++t]=i;
        for(int j=1;j<=t && i*prime[j]<100005;j++){
            is_prime[i*prime[j]]=1;
            if(i%prime[j]==0)
              break;
        }
    }
}
int main(){
    cin>>n;
    p();
    for(int i=2;i<n;i++){
        if(is_prime[i]==0&&is_prime[n-i]==0){
            cout<<n<<"="<<i<<"+"<<n-i;
            break;
        }
    }
    return 0;
}
心得:

null

G:

簽到題 最大公約數(shù) 略了略了

H:

H題面.png
思路:

記憶化搜索

代碼:
#include<iostream>
using namespace std;
const int N=105;
int n,m;
int maze[N][N],f[N][N];
int dx[4]={0,0,-1,1},dy[4]={1,-1,0,0};
int dfs(int x,int y){
    if(f[x][y]) return f[x][y];
    for(int k=0;k<4;k++){
        int nx=x+dx[k];
        int ny=y+dy[k];
        if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&maze[nx][ny]<maze[x][y]){
            dfs(nx,ny);
            f[x][y]=max(f[x][y],f[nx][ny]+1);
        }
    }
    return f[x][y];
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>maze[i][j];
    int ans=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            ans=max(ans,dfs(i,j));
    cout<<ans+1;
    return 0;
}
心得:

終于結(jié)束了 告辭(狗頭)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市菠秒,隨后出現(xiàn)的幾起案子疙剑,更是在濱河造成了極大的恐慌,老刑警劉巖践叠,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件言缤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡禁灼,警方通過(guò)查閱死者的電腦和手機(jī)管挟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)弄捕,“玉大人僻孝,你說(shuō)我怎么就攤上這事〔烀辏” “怎么了皮璧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵舟扎,是天一觀的道長(zhǎng)分飞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)睹限,這世上最難降的妖魔是什么譬猫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮羡疗,結(jié)果婚禮上染服,老公的妹妹穿的比我還像新娘。我一直安慰自己叨恨,他們只是感情好柳刮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著痒钝,像睡著了一般秉颗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上送矩,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天蚕甥,我揣著相機(jī)與錄音,去河邊找鬼栋荸。 笑死菇怀,一個(gè)胖子當(dāng)著我的面吹牛凭舶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播爱沟,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼帅霜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了呼伸?” 一聲冷哼從身側(cè)響起义屏,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜂大,沒(méi)想到半個(gè)月后闽铐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奶浦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年兄墅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澳叉。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隙咸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出成洗,到底是詐尸還是另有隱情五督,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布瓶殃,位于F島的核電站充包,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遥椿。R本人自食惡果不足惜基矮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冠场。 院中可真熱鬧家浇,春花似錦、人聲如沸碴裙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舔株。三九已至莺琳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間督笆,已是汗流浹背芦昔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娃肿,地道東北人咕缎。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓珠十,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凭豪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焙蹭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 動(dòng)態(tài)規(guī)劃(Dynamic Programming) 動(dòng)態(tài)規(guī)劃,簡(jiǎn)稱(chēng)DP嫂伞,它是求解最優(yōu)化問(wèn)題的一種常見(jiàn)策略孔厉。例如前面...
    ducktobey閱讀 404評(píng)論 0 1
  • 刷了六七十道題一百題多題些阅,發(fā)現(xiàn)每次遇到數(shù)據(jù)結(jié)構(gòu)以外的題都略吃力龟劲,一般腦子里想的都是如何遞歸,分解成小問(wèn)題有决,但子結(jié)構(gòu)...
    鍋鍋Iris閱讀 2,064評(píng)論 0 3
  • 原文鏈接: 全網(wǎng)最全的數(shù)據(jù)結(jié)構(gòu)與算法文章合集 一拼余、時(shí)間復(fù)雜度 O(n)時(shí)間解決的面試題:名人問(wèn)題O(n)時(shí)間解決的...
    passiontim閱讀 1,050評(píng)論 0 1
  • 前言 寫(xiě)本文的動(dòng)機(jī)是想談?wù)劷趯W(xué)習(xí)動(dòng)態(tài)規(guī)劃的一些心得體會(huì)污桦,記錄一下學(xué)習(xí)路徑順便推薦一些優(yōu)秀的博文,拋磚引玉匙监,為之后...
    GayLeague閱讀 5,542評(píng)論 2 6
  • 用兩張圖告訴你凡橱,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,734評(píng)論 2 59