企业中英文网站建设,珠海网站建设熊掌号,wordpress 火车头发布规则,天津广告公司网站建设A 1! 5! 46 169
有一种数字#xff0c;我们称它为 纯真数。 它等于自身每一个数位的阶乘之和。请你求出不超过n的所有 纯真数。(注#xff1a;纯真数不含有前导0#xff09;数据范围1e18
纯真数只有四个#xff0c;注意0!1 1,2,145,40585
int n;cinn;int res[]{…A 1! 5! 46 169
有一种数字我们称它为 纯真数。 它等于自身每一个数位的阶乘之和。请你求出不超过n的所有 纯真数。(注纯真数不含有前导0数据范围1e18
纯真数只有四个注意0!1 1,2,145,40585
int n;cinn;int res[]{1,2,145,40585};if(n1)coutres[0]endl;if(n2)coutres[1]endl;if(n145)coutres[2]endl;if(n40585)coutres[3]endl;B 翻转板游戏 4 26
幼儿园引进了一款新玩具是包含若干块翻转板的一条长链。初始时翻转板上每块板子正面或反面朝上游戏的目的为将所有翻转板最终翻转为均正面朝上。 老师认为翻转板游戏的原设置太过于简单不能满足幼儿园里天才儿童们的游玩需求要被小孩子嫌弃啦于是想要基于原游戏设备对于游戏进行升级。 为增加游戏难度 老师规定对于翻转板长链进行的每次操作必须选择连续的至少 k块板子进行翻转。 现给定翻转板长链每块板子的初始状态请你帮老师找到最大的限制条件 k使得游戏难度最大但最终游戏有解即一定存在至少一种方式可通过若干次操作使得所有翻转板最终翻转为正面朝上并输出最大的 k 输入共一行包含一个 01字符串 1~1e5 0表示第i块板子初始时正面朝上1表示第i块板子初始时反面朝上
从左向右遍历遇到不相等的两块板子要么把前半边全部翻转i1个)要么把后半边全部翻转(len-i1个)选择较大的那种翻转方式遍历一遍找出可以这样做的最小的k
signed main(){IOS;string s;cins;int lens.size(),anslen;fer(i,0,len-1){if(s[i]!s[i1]){ansmin(ans,max(i1,len-i-1));}}coutans;return 0;
}C 地毯规划 7 23 输出 4 暴力
const int N101,mod1e97;
int a[N][N],b[N][N];
signed main(){IOS;int n,m;cinnm;fer(i,0,n){fer(j,0,m)cina[i][j];//要求 }int cnt,mn1e18;fer(x,1,n1){//遍历毯子大小xfer(y,1,n1){//遍历毯子大小yfer(i,0,n){fer(j,0,m)b[i][j]a[i][j];}//重置要求 cnt0;bool f1;fer(i,0,n){//遍历要求 fer(j,0,m){//遍历要求 int tb[i][j];if(t0)continue;else if(t0){f0;break;}else{cntt;if(t0ixnjym){//可以铺毯子 fer(s,i,ix){//把铺上毯子的地方减去 fer(k,j,jy){b[s][k]-t;}}}else {f0;break;}}}if(!f)break;}if(f){mnmin(mn,cnt);//coutxx yy mnendl;}}}coutmnendl;return 0;}D 国王移动 48 104 int x1,y1,x2,y2;cinx1y1x2y2;int horizonabs(x1-x2);int verticalabs(y1-y2);if(horizonvertical)swap(horizon,vertical);//horizonvertical int resvertical;coutresendl;E 面包店 1 12 输出 2 由大到小排袋子由美味值大到小排面包双指针遍历可以不选面包
int pack[N];
struct node{int size,taste;
};
bool cmp(node a,node b){if(a.tasteb.taste)return a.sizeb.size;return a.tasteb.taste;
}
signed main(){IOS;int n,m;cinnm;vectornode bread;fer(i,0,n){int a,b;cinab;bread.pb({a,b});}fer(i,0,m)cinpack[i];sort(pack,packm,greaterint());sort(bread.begin(),bread.end(),cmp);int cnt0,j0;fer(i,0,m){if(jn)break;if(bread[j].sizepack[i]){j;cnt; }else{j;i--;}}coutcnt;return 0;
}F 拥挤的珠峰 0 11 G 最终会相等的 1 11 //暴力解法54% TLE
const int N2e51,mod1e97;
int a[N],b[N];
int mn1e18,n;
int dfs(int t){if(tn-1){if(a[t]b[t])return 0;else return -1;}if(a[t]b[t])return dfs(t1);int minn1e18;if(a[t]!b[t]){fer(i,t1,n){if(a[i]i-tb[t]){//可以左加 int xa[i];for(int ji;jt;j--){//所有数右移 a[j]a[j-1]-1;} a[t]x;int dgdfs(t1);if(dg-1)continue;else minnmin(minn,dgi-t);for(int jt;ji;j){//所有数左移 a[j]a[j1]1;}a[i]x;}}if(minn!1e18)return minn;else return -1;}
}
signed main(){IOS;cinn;int suma0,sumb0;fer(i,0,n){cina[i];sumaa[i];}fer(i,0,n){cinb[i];sumbb[i];}if(suma!sumb)cout-1endl;else{int resdfs(0); if(res!-1)coutdfs(0)endl;else cout-1endl;}return 0;}H 新版奔跑在北化 27 122 int a[N];
signed main(){IOS;int n,k;cinnk;int neg-1,zero0;fer(i,0,n){cina[i];if(a[i]0)negi;//最后一个负数的位置 else if(a[i]0)zero;}int cnt0;if(zero1)cnt;int mn1e18;int tmp;fer(i,0,n){//i是到达的该半轴的终点 tmpcnt;//已打卡点数int cost0; if(a[i]0){tmpneg-i1;//打卡了这么多点 costabs(a[i]);if(tmpk){if(negk-tmpn){costabs(a[i]);//折返 costa[negk-tmp];}else continue;}}else if(a[i]0){tmpi-neg;costa[i];if(tmpk){if(neg-ktmp10){costa[i];costabs(a[neg-ktmp1]);}else continue;}}mnmin(mn,cost);}coutmnendl;return 0;}I 花束紧凑 0 1 J 除杂草 37 246 int n;cinn;fer(i,0,n)cina[i];int kill-1; bool f1;fer(i,0,n-1){if(a[i]a[i1]){killi;break;//拔掉高的}}fer(i,0,n-1){if(i1kill){if(a[i]a[i2]){f0;break;}}else if(ikill){continue;}else{if(a[i]a[i1]){f0;break;}}}if(f)coutYesendl;else {f1;fer(i,0,n-1){if(a[i]a[i1]){killi1;break;//拔掉矮的 }//kill范围是1~n-1 }fer(i,0,n-1){if(i1killi2n){if(a[i]a[i2]){f0;break;}}else if(ikill){continue;}else{if(a[i]a[i1]){f0;break;}}}if(f)coutYesendl;else coutNoendl;}