阿里巴巴如何做网站,中信建设有限责任公司杨峰,宁夏网站建设公司,学装修设计师多少学费1.五一礼物【算法赛】 - 蓝桥云课 (lanqiao.cn)
#include iostream
using namespace std;
int main()
{cout51endl;return 0;
}2.合成贤者之石【算法赛】 - 蓝桥云课 (lanqiao.cn)
假设黄水晶的个数是 x x x,那蓝水晶个数肯定是 x − 1 …1.五一礼物【算法赛】 - 蓝桥云课 (lanqiao.cn)
#include iostream
using namespace std;
int main()
{cout51endl;return 0;
}2.合成贤者之石【算法赛】 - 蓝桥云课 (lanqiao.cn)
假设黄水晶的个数是 x x x,那蓝水晶个数肯定是 x − 1 x-1 x−1,红水晶是 x − 2 x-2 x−2,总的水晶数是 3 x − 3 3x-3 3x−3。总的水晶数不能超过埚的容量所以 a i 3 x − 3 a_{i}3x-3 ai3x−3枚举一下即可时间复杂度 O ( n a i ) O(na_{i}) O(nai)
void solve()
{cinn;for(int i1;in;i)cina[i];int res0;for(int i1;in;i){for(int ja[i];j0;j--){if(3*j-3a[i]j-20){resj-2;break;}}}coutresendl;
}3.Yaya与加减法【算法赛】 - 蓝桥云课 (lanqiao.cn)
贪心只要正数就用号不够就用-号负数用-号不够用号即可
#include bits/stdc.h
using namespace std;
const int N1e54;
typedef long long ll;
pairint,int p[N];
bool cmp(pairint,int x,pairint,int y)
{return x.firsty.first;
}
int main()
{int n,a,b;cinnab;for (int i1;in;i){int x;cinx;p[i].firstabs(x);p[i].secondx;}ll sump[1].second;sort(p2,p1n,cmp);for (int i2;in;i){if (p[i].second0){if (b1) sum(ll)p[i].first,b--;else sum(ll)p[i].second,a--;} else{if (a1) sum(ll)p[i].first,a--;else sum-(ll)p[i].first,b--;}}coutsum;return 0;
}4.Yaya与字符画【算法赛】 - 蓝桥云课 (lanqiao.cn)
暴力枚举每一个点是否有v然后取 m a x max max即可
int m,n;
char g[N][N];
int cnt;void calc(int x,int y)
{for(int i0;imax(n,m);i){int tx1x-i,ty1y-i;int tx2x-i,ty2yi;if(tx10||ty10||ty1m||tx1n||tx20||ty20||ty2m||tx2n)return;if(tx1xty1y)continue;if(g[tx1][ty1].||g[tx2][ty2].)return;cnt; }
}void solve()
{cinnm;for(int i1;in;i)for(int j1;jm;j)cing[i][j];int res0;for(int i1;in;i)for(int j1;jm;j){if(g[i][j]*){cnt0;calc(i,j);resmax(res,cnt);}}coutresendl;
}5.咒语融合【算法赛】 - 蓝桥云课 (lanqiao.cn)
贪心看数据范围都是正数那肯定要取 m a x i 1 n a i max_{i1}^{n} a_{i} maxi1nai 然后就遍历一下找出最大的即可
void solve()
{cinn;for(int i1;in;i)cina[i];sort(a1,a1n);reverse(a1,a1n);int resa[1]a[2];string t1to_string(a[1]);string t2to_string(a[2]);reverse(t1.begin(),t1.end());reverse(t2.begin(),t2.end());int v0;for(int i0;imin(t1.size(),t2.size());i){if(t1[i]t2[i])vt1[i]-0;}res-v;int sa[1];for(int i2;in;i){string t3to_string(a[i]);reverse(t3.begin(),t3.end());int tt0;for(int i0;imin(t1.size(),t3.size());i){if(t1[i]t3[i])ttt3[i]-0;}resmax(res,sa[i]-tt);}coutresendl;
}