站长之家域名,修改 网站 数据库,app推广渠道有哪些,五星酒店网站建设方案题目1#xff1a;MC0227堆煤球
码题集OJ-堆煤球 (matiji.net) 思路#xff1a;
1.i从l枚举到r,i是8的倍数就跳过#xff0c;i不是8的倍数就用等差数列求和公式i(1i)/2,最后累加到答案中即可
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{in…题目1MC0227堆煤球
码题集OJ-堆煤球 (matiji.net) 思路
1.i从l枚举到r,i是8的倍数就跳过i不是8的倍数就用等差数列求和公式i(1i)/2,最后累加到答案中即可
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{int l,r; cinlr;int ans0;for(int il;ir;i){if(i%80) continue; //注意这里是模8ansi*(1i)/2; //等差数列求和公式}coutans;return 0;
} 题目2MC0228军团大战
码题集OJ-军团大战 (matiji.net) 思路
1.找出字符数量最多有多个输出字典序最小的那一个
2.开一个数组统计每一个字母出现的次数
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{string s; cins;vectorintcnt(26); //统计每一个字符出现的次数int mx0;for(char c:s){cnt[c-A];mxmax(mx,cnt[c-A]);}for(int i0;i26;i) //找到字典序最小的一个if(cnt[i]mx){cout(char)(iA);return 0;}return 0;
} 题目3MC0229武力对决
码题集OJ-武力对决 (matiji.net) 思路
1.获得的最大经验值用最大值减最小值得到
2.求最大值最小值可以一趟遍历求得也可以直接排序
AC_Code:C
#includebits/stdc.h using namespace std;
int const N1e57;int a[N];
int n;int main( )
{scanf(%d,n);for(int i0;in;i) scanf(%d,ai);sort(a,an);couta[n-1]-a[0]endl;return 0;
} 题目4MC0230小码哥教数学
码题集OJ-小码哥教数学 (matiji.net) 思路
1.互质就是最大公约数为1让两组学生左移就是取出最高一位把它放到个位
AC_Code:C
#includebits/stdc.h using namespace std;int gcd(int a,int b){return b0?a:gcd(b,a%b);
}int main( )
{int a,b; cinab;int tempa,n0;while(temp) temp/10,n;int basepow(10,n-1); //10^(n-1)int ans-1;for(int i0;in;i){if(gcd(a,b)1){ansi; break; //满足互质}aa%base*10a/base;bb%base*10b/base;}coutans;return 0;} 题目5MC0231圣诞树上的星星
码题集OJ-圣诞树上的星星 (matiji.net) 思路
1.3的倍数输出|不是3的倍数第几行输出几个星星
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{int n; cinn;for(int i1;in;i){if(i%30) puts(|); //3的倍数else{for(int j0;ji;j) printf(*);puts();}}return 0;
} 题目6MC0232魔塔密码
码题集OJ-魔塔密码 (matiji.net) 思路
1.密码是由每隔k-1个字符组成的相当于由下标索引模k等于0的所有字符组成
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{int k; string s; cinks;for(int i0;is.size();i){if(i%k0) couts[i];}return 0;
} 题目7MC0233地狱尖兵
码题集OJ-地狱尖兵 (matiji.net) input:
3
5 5
....P
##..E
K#...
##...
.....
5 5
P....
.....
..E..
.....
....K
5 5
P#..E
.#.#.
.#.#.
.#.#.
...#K
output:
No solution
12
No solution 思路bfs
1.小马妹先和其他小队回合在一起前往制高点先求P,K最短距离再求KE最短距离
2.求最短距离可以跑一遍bfs注意求P,K最短距离时要将制高点看成墙表示不能通行
AC_Code:C
#includebits/stdc.h using namespace std;
int const N507;char s[N][N];
bool vis[N][N];
int n,m;
int dx[]{-1,1,0,0},dy[]{0,0,-1,1};
struct Node{int x,y,step;
};int bfs(int x1,int y1,int x2,int y2){queueNodeq; q.push({x1,y1,0});memset(vis,0,sizeof vis);vis[x1][y1]1;while(q.size()){Node tempq.front(); q.pop();if(temp.xx2temp.yy2) return temp.step; //找到了终点for(int i0;i4;i){int xdx[i]temp.x,ydy[i]temp.y;if(x0||y0||xn||ym) continue; //越界if(s[x][y]#||vis[x][y]) continue; //是墙或者被遍历过q.push({x,y,temp.step1});vis[x][y]1;}}return -1; //没有到终点
}void solve(){scanf(%d%d,n,m);int px,py,kx,ky,ex,ey;for(int i0;in;i) scanf(%s,s[i]);for(int i0;in;i)for(int j0;jm;j){if(s[i][j]P) pxi,pyj;else if(s[i][j]K) kxi,kyj;else if(s[i][j]E) exi,eyj;}//小马妹要和其他小队先会和此时制高点也看成墙s[ex][ey]#; int t1bfs(px,py,kx,ky);s[ex][ey]E; //复原int t2bfs(kx,ky,ex,ey);if(t1-1||t2-1) puts(No solution);else coutt1t2endl;
}int main( )
{int T; cinT;while(T--){solve();}return 0;
} 题目8MC0234激光扫描游戏
码题集OJ-激光扫描游戏 (matiji.net) 思路
1.按要求模拟遇到炸炸弹变化扫描范围
AC_Code:C
#includebits/stdc.h using namespace std;
int const N1e37;int n;
vectorintg[N]; //g[i]:存的是第i的的炸弹int main( )
{cinn;for(int i0;in;i){int x,y; cinxy;g[x].push_back(y);}int ans0,r499;for(int i0;i1000;i){int cur_rr;anscur_r1;//遇到炸弹变化为行-列for(int j:g[i]){if(cur_rj) rr(i-j);}//扫描位置最大为999最小为0if(r0) r0;if(r999) r999;}coutans;return 0;
} 题目9MC0235数数游戏
码题集OJ-数数游戏 (matiji.net) 思路
1.从1枚举到n,分别统计满足要求的情况
AC_Code:C
#includebits/stdc.h using namespace std;//能被3整除或包含数字3
bool check3(int n){if(n%30) return true;while(n){if(n%103) return true;n/10;}return false;
}//能被5整除或包含数字5
bool check5(int n){if(n%50) return true;while(n){if(n%105) return true;n/10;}return false;
}int main( )
{int n; cinn;int a0,b0,c0;for(int i1;in;i){if(check3(i)check5(i)) c; //规则一二都满足else{if(check3(i)) a; //满足规则一if(check5(i)) b; //满足规则二}}printf(%d\n%d\n%d\n,a,b,c);return 0;
} 题目10MC0236跳跳棋
码题集OJ-跳跳棋 (matiji.net) input:
4
4
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
output:
8
思路模拟
1.模拟跳到的格子是质数答案
AC_Code:C
#includebits/stdc.h using namespace std;
int const N107;int a[N][N];
int n,m;//检查是否为质数
bool check(int n){for(int i2;in/i;i)if(n%i0) return false;return true;
}int main( )
{scanf(%d%d,n,m);for(int i1;in;i)for(int j1;jm;j) scanf(%d,a[i][j]);int ans0;int i1,j1;while(in){if(check(a[i][j])) ans,ja[i][j]%10; //是质数答案else j; //不是质数向右跳一格if(jm) i,j1;} coutans;return 0;
} 题目11MC0237小狗巴克
码题集OJ-小狗巴克 (matiji.net) 思路
1.对原字符串去除!得到一个新的字符串然后用新的字符串调用find函数查找目标字符串
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{string s,t; cinst;string new_s;for(int i0;is.size();i) {if(s[i]!) continue; //去除!new_ss[i];}int idxnew_s.find(t); //用新的字符串直接调用find函数if(idx!-1) puts(True);else puts(False);return 0;
}
题目12
占时更新
题目13MC0239小码哥玩字母独
码题集OJ-小码哥玩字母独 (matiji.net) 思路
1.开一个hash数组将主对角线的字符加入数组中如果一个字符出现了两次则输出refuse,并结束程序如果到最后都没有出现相同的字符输出accept
AC_Code:C
#includebits/stdc.h using namespace std;
int const N107;int n;
char str[N][N];
bool vis[26]; //hash数组int main( )
{scanf(%d,n);for(int i1;in;i) scanf(%s,str[i]1);for(int i1;in;i){char cstr[i][i];if(vis[c-a]){ puts(refuse); //当前字符出现了2次了return 0;}vis[c-a]true;}puts(accept);return 0;
}