推广单页网站免费制作,旅游网站管理系统,礼仪策划网站建设,网站该怎么找到A - Scoreboard
大意
高桥队和青木队进行了场比赛#xff0c;给出每场比赛中高桥队和青木队的积分#xff0c;问最后谁总分更高或平局。
思路
统计总分比较即可。
代码
#includeiostream
using namespace std;
int main(){int n, a0, b0;cin n;while(…A - Scoreboard
大意
高桥队和青木队进行了场比赛给出每场比赛中高桥队和青木队的积分问最后谁总分更高或平局。
思路
统计总分比较即可。
代码
#includeiostream
using namespace std;
int main(){int n, a0, b0;cin n;while(n--){int x, y;cin x y;a x, b y;}if(a b) cout Aoki endl;else if(a b) cout Draw endl;else cout Takahashi endl;return 0;
}
B - Extended ABC
大意
给定一个字符串问是否形如A、B和C的数量可以为零。
思路
遍历字符串判断是否有序即可。
代码
#includeiostream
using namespace std;
int main(){string s;cin s;char cur s[0];for(auto i: s){if(cur i) continue;if(i cur){cout No endl;return 0;}if(i cur) cur i;}cout Yes endl;return 0;
}
C - Lining Up 2
大意
有 人在排队。
给你一个长度为的序列来排列这些人。 表示以下信息
如果 则排在队伍的最前面如果则 紧跟在 后面。
从前面到后面打印一行人的编号。
思路
设置数组表示第个人的后面是读入时如果不为-1则令。
否则确定第一个人。
确定队首后根据数组推出队伍。
代码
#include iostream
using namespace std;
const int N 3e5 9;
int a[N], b[N];
int main() {int n;cin n;for (int i 1; i n; i) {int x; cin x;if (x -1) b[1] i;else a[x] i;}int cur b[1];for (int i 2; i n; i) {b[i] a[cur];cur b[i];}for (int i 1; i n; i) cout b[i] ;return 0;
}
D - Cheating Gomoku Narabe
大意
给定的二维网格格子上有 xo.三种之一。
问最少进行的操作数使得网格有连续水平或垂直个格子都是 o。
操作为将一个为.的格子改为o。
思路
因此可以枚举这连续个格子的左端点 然后往右的个格子里不能有x然后对.的数量取个最小值。事先预处理一下关于x和.数量的前缀和。为了方便可以将x设为极大值
水平计算一次后旋转九十度再计算一次即可。
代码
#include iostream
#include vector
#include climits
#include unordered_map
using namespace std;
vectorstring grid, T;
#define int long longint solve(const vectorstring grid, int k) {int h grid.size();int w grid[0].size();unordered_mapchar, int mp;mp[.] 1;mp[x] INT_MAX;mp[o] 0;vectorvectorint pref(h, vectorint(w));int ans INT_MAX;for (int i 0; i h; i) {for (int j 0; j w; j) {if (j 0) pref[i][j] mp[grid[i][j]];else pref[i][j] pref[i][j - 1] mp[grid[i][j]];if (j k - 1) {ans min(ans, pref[i][j] - (j k - 1 ? 0 : pref[i][j - k]));}}}return ans;
}signed main() {int h, w, k;ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin h w k;for (int i 0; i h; i) {string s;cin s;grid.push_back(s);}int ans solve(grid, k);T.assign(w, string(h, w));for (int i 0; i h; i)for (int j 0; j w; j) T[j][i] grid[i][j];ans min(ans, solve(T, k));cout (ans INT_MAX ? ans : -1) endl;return 0;
}
E - Bad Juice
大意
有瓶果汁其中有一瓶变质了喝了变质的果汁会拉肚子但你不知道哪瓶变质了。
你需要找最少的朋友然后给他们一些果汁喝。一瓶果汁可以给多个朋友喝一个朋友也可以喝多瓶果汁。
第二天朋友们会告诉你他们是否不舒服你需要据此找到变质的果汁。
思路
考虑对果汁编号到考虑其二进制。对于坏的果汁我们需要确定的二进制下哪些数位是1。
把 到中所有二进制下第 位为1的都给第个朋友喝如果它第二天肚子疼了说明 的第 位为1。
需要个朋友来试毒。
代码
#includeiostream
#includevector
using namespace std;
int main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n;cin n;int m 0;while((1 m) n) m;cout m endl;for(int i 0; i m; i){vectorint c;for(int j 0; j n; j)if((j i) 1) c.push_back(j);cout c.size() ;for(auto x: c) cout x 1 ;cout endl;}string s;cin s;int ans 0;for(int i 0; i s.size(); i)if(s[i] 1) ans (1 i);cout ans 1 endl;return 0;
}