网站建设技术团队有多重要性,海外网站免费建设,茶叶网站模板,电子商务网站规划与建设摘要5.14和队友VP一场#xff0c;第二次VP#xff0c;状态明显比第一次好很多#xff0c;总共A了7题#xff0c;基本是能做出来的都做出来了#xff0c;最后还剩下接近2小时的时间。。。。。
A 北华有几何
思路#xff1a;数图片中“北华”的数量#xff0c;直…5.14和队友VP一场第二次VP状态明显比第一次好很多总共A了7题基本是能做出来的都做出来了最后还剩下接近2小时的时间。。。。。
A 北华有几何
思路数图片中“北华”的数量直接输出即可
B 学霸题 II
思路二分前缀和(缺少任何一个都会超时)
首先输入数组a(正视图每列的个数)然后对其进行排序计算数组a的前缀和再输入数组b(侧视图每列的个数)数组b每个数只能小于或者等于数组a的每一个数。这样想假如开始按正视图的个数堆满那么考虑每列侧视图时正式图只要大于当前列侧视图的都要削减到和当前列侧视图同高所以每输入一个b二分数组a在数组a中查找第一个大于b的数前半部分不变直接是前缀和即可后半部分都等于当前列侧视图b lower_bound(begin,end,num); 查找第一个大于等于num的数字upper_bound(begin,end,num); 查找第一个大于num的数字 AC代码
#includeiostream
#includealgorithm
#define int long long
using namespace std;const int N300005;
int a[N],b[N],sum[N];
signed main(){int n,m,ans0,pos;cinn;for(int i1;in;i){cina[i];}sort(a1,an1);for(int i1;in;i){sum[i]sum[i-1]a[i];}cinm;for(int i1;im;i){cinb[i];posupper_bound(a1,an1,b[i])-a;ans(n-pos1)*b[i]sum[pos-1];}coutans;return 0;
}
C 小杜的字符串
思路模拟
对字符串的每列进行遍历将每列的字符都变成在每列中出现次数最多的字符因为只有三行所以记录字符出现次数每次答案加上3-最大字符数即可
AC代码
#includeiostream
#includecstring
#includealgorithm
using namespace std;string s[5];
int sum[30];
int main(){int n,ans0;cinn;for(int i1;i3;i){cins[i];}for(int i0;in;i){memset(sum,0,sizeof(sum));for(int j1;j3;j){sum[s[j][i]-a];} sort(sum,sum26);ans3-sum[25];}coutans;return 0;
}
D 矿石精炼场
思路模拟题
因为只能购买一台矿石精炼器所以分析两种情况取最大值即可。第一种情况不购买矿石精炼器最后的金钱即为当前手里的金钱矿资源的价值。第二种情况购买矿石精炼器若要购买矿石精炼器首先电力资源要满足所以要修建发电站要修建发电站首先要看钱满不满足所以要先判断电力资源满不满足计算需要修建发电机需要的钱数(注意不能出现负的)矿产资源数和当前手里的钱数减去需要的钱数剩下的再通过矿石精炼
AC代码
#includeiostream
#includecmath
using namespace std;int main(){double T,w,m,E,D,c0,d,p,c1,e,sum1,sum2,nm;cinT;while(T--){cinwmEDc0dpc1e;sum1wm;nmmax(0.0,ceil((Dd-E)/e))*c1c0;if(nmm){sum2w*(1p*0.01)m-nm;}else{sum2(wm-nm)*(1p*0.01);}printf(%.2lf\n,max(sum1,sum2));}return 0;
}
E 天空岛
优先队列的自定义不会写仿函数啥的啊啊啊啊带结构体的优先队列。。。
开始只考虑BFS未考虑优先队列所以总是想不出来这样写为什么会AC之后才慢慢理解。。
思路BFS优先队列
先将第一个点加入队列然后只要队列非空取出一个点(因为是优先队列所以取出的点为当前队列中w即承重极限最大的)注意货物必须首先满足重量小于等于该单元格的承重极限所以每次结果为队列中承重极限最大的同时单独计算精灵分担的货物重量
AC代码
#includeiostream
#includequeue
#define int long long
using namespace std;const int N1005;
int w[N][N],val[N][N];
bool vis[N][N];
int dx[]{-1,1,0,0};
int dy[]{0,0,-1,1};
struct Node{int x;int y;int z;
};struct cmp{bool operator()(Node a,Node b){return a.zb.z;}
};signed main(){int n,m,k,x,y,v,ans0x3f3f3f3f,sum0;cinnm;for(int i1;in;i){for(int j1;jm;j){cinw[i][j];}}cink;for(int i1;ik;i){cinxyv;val[x][y]v;}priority_queueNode,vectorNode,cmp q;q.push({1,1,w[1][1]});while(!q.empty()){Node tq.top();int at.x,bt.y,ct.z;q.pop();//防止队列中出现多次同一个元素//某个在队列中间的元素被多次压入 if(vis[a][b]){continue;}vis[a][b]1;ansmin(ans,csum);sumval[a][b];if(anbm){break;}for(int i0;i4;i){int nxadx[i],nybdy[i];if(vis[nx][ny]||nx1||nxn||ny1||nym){continue;}q.push({nx,ny,w[nx][ny]});}}coutans;return 0;
}
F Karashi的树 II
思路并查集最短路
不会。。。。
G 114514国
思路思维题因为给一张45找回四张11相当于支付1注意要求0≤A,B,C,a,b,c≤所以先支付45面值的取余45即可剩下的再使用一张45找回四张
AC代码
#includeiostream
using namespace std;int main(){long long n,ans0;cinn;ansn/45;n%45;cout0 ansn 0\n;coutn*4 0 0\n;return 0;
}
H 杰哥的激光炮
思路也算是思维题吧。。。先求长和宽的最大公约数答案即为最大公约数*(长/最大公约数宽/最大公约数-1)
AC代码
#includeiostream
#includealgorithm
using namespace std;int main(){int T,x,y;cinT;while(T--){cinxy;if(xy){coutx\n;}else{int t__gcd(x,y);coutt*(x/ty/t-1)\n;}}return 0;
}
I TAROT I
思路容斥
不会。。。
L Karashi的电灯泡
思路大模拟。。。理解不了。。。。。 M 超时空传送偷袭
思路水题。。。输出九个战斗力最大的和即可(不足九个输出和)
#includeiostream
#includealgorithm
using namespace std;const int N105;
int a[N];bool cmp(int x,int y){return yx;
}
int main(){int n,ans0;cinn;string s;for(int i0;in;i){cinsa[i];}sort(a,an,cmp);for(int i0;i9;i){ansa[i];}coutans;
}