不关闭网站备案,建设的网站百度搜不到,百度搜索推广技巧,男生最喜欢的浏览器推荐A-小H学语文
题意#xff1a;木板数量为m#xff0c;想让mmh#xff08;min)最大#xff0c;找出这几块木板
分析#xff1a;让木板从大到小排序#xff0c;找到最大的体积#xff0c;将之前的木板按序列输出
代码#xff1a;
#includebits/stdc.h
using n…A-小H学语文
题意木板数量为m想让m×m×hmin)最大找出这几块木板
分析让木板从大到小排序找到最大的体积将之前的木板按序列输出
代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int N2e510;
struct A{ll x,idx;
}h[N];
struct AA{ll x,idx;
}b[N];
bool cmp(A xx,A yy){return xx.xyy.x;
}
bool cmpp(AA xx,AA yy){return xx.idxyy.idx;
}
void sol(){int n;cinn;for(int i1;in;i){cinh[i].x;h[i].idxi;}sort(h1,hn1,cmp);ll s0;ll cn;for(int i1;in;i){if(sh[i].x*i*i){sh[i].x*i*i;ci;}}coutcendl; for(int i1;ic;i){b[i].xh[i].x;b[i].idxh[i].idx;}sort(b1,bc1,cmpp);for(int i1;ic;i)coutb[i].idx ;
}
int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int t1;while(t--)sol();return 0;
}
B-小H学数学
题意用双手可以有多少种方案凑出x两只手可以直接表示一个1-10的范围的数也能表示两个1-5范围的数每个数都可以选择做加法或减法。一共有y1个人
分析dp[i]表示目标为i的方案数b[i]表示上一个人目标为i的方案数这个人要分两种情况,一只手和两只手dp[1000]1;答案dp[x1000];
代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int N3e310;
const ll mod1e97;
typedef long long ll;
ll x,y,dp[N],b[N];
void sol(){cinxy;dp[1000]1;for(int i1;iy1;i){//人 memset(b,0,sizeof(b));for(int j0;j2e3;j){for(int k-10;k10;k){//一只手 if(k!0jk0)b[jk](dp[j]b[jk])%mod; }for(int l-5;l5;l){//两只手 for(int r-5;r5;r){if(l!0r!0(jlr0))b[jlr](b[jlr]dp[j])%mod;} } }memcpy(dp,b,sizeof(dp));}coutdp[x1000];
}
int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int t1;while(t--)sol();return 0;
}