杨浦网站建设_网站外包,酒店门户网站建设背景,桂林漓江大瀑布酒店,网站浏览历史怎么查看202305-1重复局面
思路#xff1a; 题目的意思是我们输入n组局面#xff0c;每个局面由64个字符组成#xff0c;然后判断有没有相同局面。那么我们就可以开一个map#xff0c;用字符数组a记录每个局面的字符#xff0c;然后放入map中#xff0c;每次输出它的次数即可。 …202305-1重复局面
思路 题目的意思是我们输入n组局面每个局面由64个字符组成然后判断有没有相同局面。那么我们就可以开一个map用字符数组a记录每个局面的字符然后放入map中每次输出它的次数即可。 代码
#includebits/stdc.h
using namespace std;
int n;
char a[64];
mapstring,int mp;
int main(){cinn;for(int i0;in;i){for(int j0;j64;j) cina[j];if(mp.count(a)) mp[a];else mp[a]1;coutmp[a]endl; }return 0;
}202305-2矩阵运算
思路 根据题目描述本题就是简单的矩阵运算关键在于先算哪个。在纸上列一下矩阵运算的过程用for循环即可求解。 代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int N10010,D30;
ll tmp[D][D],ans[N][N];
int n,d;
int Q[N][D],K[N][D],V[N][D],W[N];
int main(){cinnd;for(int i1;in;i){for(int j1;jd;j){cinQ[i][j];}}for(int i1;in;i){for(int j1;jd;j){cinK[i][j];}}for(int i1;in;i){for(int j1;jd;j){cinV[i][j];}}for(int i1;in;i) cinW[i];//计算K的转置*Vtmpfor(int i1;id;i){for(int j1;jd;j){for(int k1;kn;k){tmp[i][j]K[k][i]*V[k][j];}}}//计算Q*tmpansfor(int i1;in;i){for(int j1;jd;j){for(int k1;kd;k){ans[i][j]Q[i][k]*tmp[k][j];}ans[i][j]*(ll)W[i];}} for(int i1;in;i){for(int j1;jd;j){coutans[i][j] ;}coutendl;}return 0;
}
202303-1 田地丈量
思路 这个题在于画图明确面积的计算公式。 画图可知每块面积的计算公式为x*y x是右边界减去左边界 右边界取相应的最小值左边界取相应的最大值 上下边界同理 代码
#includebits/stdc.h
using namespace std;
int main(){int n,a,b;int x1,y1,x2,y2;int x,y;int sum0;cinnab;for(int i1;in;i){cinx1y1x2y2;xmin(a,x2)-max(0,x1);ymin(b,y2)-max(0,y1);if(x0y0){sumx*y;}}coutsum;return 0;
}
202303-2垦田计划
思路 我们用flag标记用时i天的区域缩短一天所用的时间 然后从max所用的最长时间开始判断max和k的大小如果相等了就直接退出循环 否则判断手中资源m和所用最大时间对应缩短一天需要的资源数flag[i]进行比较如果大于的话资源m就减去flag[i]然后把这些资源数放到flag[i-1]上max–。直到资源不够为止。 然后输出max。 感觉这道题主要是一个分类的思想。重点在于把每个相同时间的缩短一天所用资源数放在一起。 代码
#includebits/stdc.h
using namespace std;
int n,k;
long long m;
mapint,int tim,res,flag;
int main(){cinnmk;int max0;for(int i0;in;i){cintim[i]res[i];maxmaxtim[i]?max:tim[i];flag[tim[i]]res[i];//flag[i]为用时i天的区域缩短一天所用时 }for(int imax;i0;i--){if(maxk) break;if(mflag[i]){mm-flag[i];flag[i-1]flag[i];max--;}else break;} coutmax;return 0;
}