2023年百度之星程式設計大賽 資格賽

2021-09-06 16:26:07 字數 1521 閱讀 8287

主要是卡了一下 接下來2題還在做 都有思路

考慮全然即可了

#include #include using namespace std;

int main()

if(k <= 1 || m <= v || (m-v)*k == m)

int sum = 0;

while(m < n && m >= 0)

if(m <= 0 && m < n)

sum = -1;

printf("%d\n", sum);

} return 0;

}

這題錯了半天 傷不起 轉成字串搞字典樹就錯 最後直接位運算&建樹就對了

ac**

#include #include typedef __int64 ll;

const int maxn = 100010;

const int maxnode = 60000000;

const int sigma_size = 2;

ll a[maxn];

char s[maxn][70];

int ch[maxnode][sigma_size];

ll val[maxnode];

int sz;

void init()

void insert(ll v)

void insert(char *s, __int64 x)

u = ch[u][c];

}val[u] = x;

}void find(char *s)

else

}printf("%i64d\n", val[u]);

}int main()

insert(s[i], a[i]);

//puts(s[i]);

}printf("case #%d:\n", cas++);

while(m--)

//puts(str);

find(str);

}

}return 0;

}

簡單遞推一下

每個點能夠由它左邊過來然後在從這個點向上向下跟新最大值

#include #include #include using namespace std;

const int maxn = 110;

const int inf = 9999999;

int dp[maxn][maxn];

int a[maxn][maxn];

bool vis[maxn][maxn][3];

int main()

int temp2 = temp;

for(int k = j+1; k <= n; k++)

}} printf("case #%d:\n", cas++);

printf("%d\n", dp[1][m]);

}return 0;

}

2017 百度之星 程式設計大賽 資格賽

度度熊為了拯救可愛的公主,於是與 大魔王戰鬥起來。大魔王的麾下有n個怪獸,每個怪獸有a i 的生命值,以及b i 的防禦力。度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k i 的晶石,造成p i 點傷害。當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p i...

2017 百度之星 程式設計大賽 資格賽

思路 比賽的時候也一直以為是計算幾何問題,所以就沒想,賽後看了看大佬們的部落格發現思路還是挺簡單的,就是對度度熊夥伴進行建圖,有邊的條件是所有所有村莊位於這天邊的一側,然後對這個圖跑乙個最小環 之前一直不理解叉積,做了幾道題之後好多了 include include include include ...

百度之星程式設計大賽題目

輸入格式 輸入的第一行只有乙個整數n,表示購置水果的組數。接下來的n行表示水果的到達時間 取走時間 時間用1200到1900之間的正整數表示,保證取走時間大於到達時間 剩下的字串以空格分割每一種水果。如 1400 1600 雪梨 水蜜桃 表示下午兩點到四點 包含兩點和四點這兩個時間點 雪梨和水蜜桃會...