购买设备有什么网站做参考,做网站入什么科目,免费咨询医生妇科专家,青岛网络服务公司题目1#xff1a;MC0214捡麦子
码题集OJ-捡麦子 (matiji.net) 思路:
1.第n米在前n-1米的基础上多加一个n个麦子#xff0c;那么直接从1开始枚举#xff0c;累加答案即可
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{int n; cinn;…题目1MC0214捡麦子
码题集OJ-捡麦子 (matiji.net) 思路:
1.第n米在前n-1米的基础上多加一个n个麦子那么直接从1开始枚举累加答案即可
AC_Code:C
#includebits/stdc.h using namespace std;int main( )
{int n; cinn;int ans0,sum0;for(int i1;in;i){sumi;anssum;}coutans;return 0;
} 题目2:MC0215小码哥玩游戏
码题集OJ-小码哥玩游戏 (matiji.net) 思路:
简述题意统计给定字符的相邻字符的数量注意结果要去重
1.可以将给定字符的四个相邻字符放到set中最后直接输出set大小
AC_Code:C
#includebits/stdc.h using namespace std;
int const N107;int n,m;
char ch;
char str[N][N];
int dx[]{-1,1,0,0},dy[]{0,0,-1,1};int main( )
{cinnmch;for(int i1;in;i){for(int j1;jm;j) cinstr[i][j];}setchars;for(int i1;in;i){for(int j1;jm;j){if(str[i][j]!ch) continue; //不是指定字符for(int k0;k4;k){int xdx[k]i,ydy[k]j;if(x1||y1||xn||ym) continue;if(str[x][y]0||str[x][y]ch) continue; //0是无字符且不能与指定字符一致s.insert(str[x][y]);}}}couts.size(); //直接输出set大小return 0;
} 题目3MC0216淘金者
码题集OJ-淘金者 (matiji.net) 思路
1.查找第一个给定字符找到直接输出其下标1遍历完都没有找到输出-1
AC_CodeC
#includebits/stdc.h using namespace std;string s;
char target;int main( )
{cinstarget;for(int i0;is.size();i){if(s[i]target){couti1;return 0;}}cout-1;return 0;
} 题目4MC0217自动浇花机
码题集OJ-自动浇花机 (matiji.net) 思路
1.左边的喷头的浇花的速度是右侧的两倍那么相当于右侧的喷头浇花花费时间是左边的两倍
2.那么可以枚举分割点左侧左喷头浇右侧右喷头浇满足左侧花费的时间右侧花费时间的两倍分割点
3.计算左右两侧的花费时间可以用前缀和优化
AC_CodeC
#includebits/stdc.h using namespace std;
int const N1e37;int a[N],pre[N];
int n;int main( )
{scanf(%d,n);for(int i1;in;i){scanf(%d,ai);pre[i]pre[i-1]a[i];}//枚举分割点int idx1;while(pre[idx](pre[n]-pre[idx1])*2) idx;coutidxendl;return 0;
} 题目5MC0218小码哥的开心数字
码题集OJ-小码哥的开心数字 (matiji.net) 思路
1.反转之后比较大小即可
2.怎么反转呢假设a123,b0,b为反转后的数字每次令bb*10a%10,最后就可以得到a反转后的数b
AC_CodeC
#includebits/stdc.h using namespace std;int main( )
{int a; cina;int tempa,b0; //b为反转后的数while(temp){bb*10temp%10;temp/10;}coutbendl; if(ba) puts(False); //反转过后的数小于反转前的数else puts(True);return 0;
} 题目6MC0219自驾游
码题集OJ-自驾游 (matiji.net) 思路bfs
1.以路程0为起点加油站的距离与money为限制跑一个最短路这里可以直接跑bfs
2.跑bfs时要记录上一个加油站的下标索引加快bfs的效率
AC_CodeC
#includebits/stdc.h using namespace std;
typedef pairint,intPII;
#define x first
#define y second
int const N2007;PII a[N];
int n,l,mx,s;
struct Node{int dist,money,idx;
};bool bfs(){queueNodeq; q.push({0,s,-1});while(q.size()){Node tq.front(); q.pop();if(t.distmxl) return true; //总行程已达L //这里记录了上一次加油的下标for(int it.idx1;in;i){if(a[i].xt.distmx) break; //距离太远无法到达if(a[i].yt.money) continue; //钱不够加油q.push({a[i].x,t.money-a[i].y,i});}}return false; //总行程无法达到达L
}int main( )
{while(cinnlmxs){for(int i0;in;i) cina[i].xa[i].y;sort(a,an); //对距离升序排列if(bfs()) puts(Yes);else puts(No);}return 0;
} 题目7MC0220买月饼
码题集OJ-买月饼 (matiji.net) 思路
1.枚举买月饼的个数对总费用分情况讨论总费用小于10元只有代金券面额刚好等于总费用符合条件
2.总费用大于10元时总费用刚好为10的倍数或者个位数刚好等于代金券的面额就满足条件
AC_CodeC
#includebits/stdc.h using namespace std;int main( )
{int m,n; cinmn;for(int i1;;i){int moneyi*m;if(money10){ //总费用小于10元if(nmoney){couti;return 0;}}else{ //总费用大于等于10元if(money%100||money%10n){couti;return 0;}}}return 0;
} 题目8MC0221未来战争
码题集OJ-未来战争 (matiji.net) 思路
1.用差分对充能段标记为1同时记录充能起点和终点
2.最后统计充能段的最大值与非充能段的最大值
3.最后充能段要记得减一非充能段要加一因为算的是区间
AC_CodeC
#includebits/stdc.h using namespace std;
int const N1e67;int n;
int diff[N];int main( )
{scanf(%d,n);int start1e67,target-1; //记录起点与终点for(int i0;in;i){int l,r; scanf(%d%d,l,r);startmin(start,l);targetmax(target,r);diff[l], diff[r1]--; //差分}for(int i1;iN;i) diff[i]diff[i-1]; //前缀和int ans10,ans20;int a0,b0;for(int istart;itarget;i){if(diff[i]) a,b0;else b,a0;ans1max(ans1,a);ans2max(ans2,b);}//算的区间长度所以要减一加一操作coutans1-1 (ans20?0:ans21)endl;return 0;
} 题目9MC0222文章压缩
码题集OJ-文章压缩 (matiji.net) 思路
1.对每个单词记录它在第几次出现过
2.最后按要求输出即可
AC_CodeC
#includebits/stdc.h using namespace std;
int const N1e37;string str[N];
int n;
unordered_mapstring,vectorintidx; //记录单词出现的位置int main( )
{cinn;for(int i1;in;i){cinstr[i];idx[str[i]].push_back(i);}unordered_setstringvis; //标记是否输出过单词for(int i1;in;i){if(vis.count(str[i])) continue; //输出过了vis.insert(str[i]);vectorintyidx[str[i]];coutstr[i](y[0];for(int j1;jy.size();j) cout,y[j];cout);}return 0;
}
题目10MC0223魔法水晶球
码题集OJ-魔法水晶球 (matiji.net) 思路
1.先检查是否为质数在判断奇偶数
AC_CodeC
#includebits/stdc.h using namespace std;bool check(int n){for(int i2;in/i;i)if(n%i0) return false;return true;
}int main( )
{int n; cinn;if(check(n)) puts(P);else if(n%2) puts(O);else puts(E);return 0;
} 题目11MC0224手机测试
码题集OJ-手机测试 (matiji.net) 思路
1.按要求模拟但是要注意t1时间段也算是性能模式还有就是注意计算的是时间段
AC_CodeC
#includebits/stdc.h using namespace std;int a,m,n,k,t1,t2;int main( )
{cinamnkt1t2;int ans0;int pre_r-1; //记录前一段的结束时间for(int i0;ia;i){int l,r; cinlr;ans(r-l)*m; //性能模式if(pre_r!-1){int lenl-pre_r; //性能模式if(lent1){len-t1;anst1*m;}else{anslen*m; pre_rr; continue;}//正常模式if(lent2){len-t2;anst2*n;}else{anslen*n; pre_rr; continue;}//省电模式ansk*len;}pre_rr;}coutans;return 0;
} 题目12MC0225银河贸易市场
题解MC0225银河贸易市场码蹄杯-CSDN博客 题目13MC0226双人成行 思路
1.把小马哥小马弟做的题目放到一个集合中看是否等于n
AC_Code:C
#includebits/stdc.h using namespace std;int n,m;
setints;void get(){cinm;for(int i0;im;i){int t; scanf(%d,t);s.insert(t);}
}int main( )
{cinn;get(); //小马哥的题get(); //小马弟的题if(s.size()n) puts(It Takes Two.);else puts(Maybe Next Time.);return 0;
}