上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 67 下一页
摘要: 虽然是道水题,但还是有点东西可写的,顺道学习了一下string中find()的用法。 最暴力的思路就是找一个删一个,但删除的话必然涉及到大量元素的移动。 int main() { string s; cin>>s; getchar(); for(int i=0;i<s.size();i++) s[i 阅读全文
posted @ 2021-01-30 14:48 Dazzling! 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 注意观察每一行的空格和行数的关系,以及星号和行数的关系。 int n; int main() { while(cin>>n) { for(int i=0;i<n;i++) { for(int j=0;j<n*2-(i+1)*2;j++) cout<<' '; for(int j=0;j<n+i*2; 阅读全文
posted @ 2021-01-29 23:34 Dazzling! 阅读(73) 评论(0) 推荐(0) 编辑
摘要: \[ f(x) = \begin{cases} 10 & x \le 4 \\ 10 + 2(x-4) & 4 < x \le 8 \\ 18 + 2.4(x-8) & x \ge 8 \end{cases} \] 如果$x \le 4$,那没什么好说的,铁定的$10$元。 如果$4 < x \le 阅读全文
posted @ 2021-01-29 16:35 Dazzling! 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 虽然简单,但还是有一定代表性的,考察用映射查找学生信息。 const int N=1010; struct Stu { string name; string sex; int age; }; map<string,Stu> mp; int n,m; int main() { while(cin>> 阅读全文
posted @ 2021-01-29 11:53 Dazzling! 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 模拟题,注意答案要求字典序最小。 甲赢的时候同时要记乙负,乙赢的时候同时要记甲负,这是成对出现的。 map<char,int> mpa,mpb; int res[2][3]; int n; int main() { cin>>n; for(int i=0;i<n;i++) { char a,b; c 阅读全文
posted @ 2021-01-28 14:56 Dazzling! 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 贪心策略是:先从1 ~ 9中选择个数不为0的最小的数输出,然后从0~9输出数字,每个数字输出次数为其剩余个数。 策略正确性的证明:首先,由于所有数字都必须参与组合,因此最后结果的位数是确定的。然后,由于最高位不能为0,因此需要从[1, 9]中选择最小的数输出( 如果存在两个长度相同的数的最高位不同, 阅读全文
posted @ 2021-01-28 09:57 Dazzling! 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 这里采用“总是选择单价最高的月饼出售,可以获得最大的利润”的策略。因此,对每种月饼,都根据其库存量和总售价来计算出该种月饼的单价。之后,将所有月饼按单价从高到低排序。 从单价高的月饼开始枚举。 如果该种月饼的库存量不足以填补所有需求量,则将该种月饼全部卖出,此时需求量减少该种月饼的库存量大小,收益值 阅读全文
posted @ 2021-01-28 00:19 Dazzling! 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 整数除以2进行四舍五入的操作可以通过判断它是否是奇数来解决,以避免浮点数的介入。 int n; int main() { char c; cin>>n>>c; int m; if(n & 1) m=n/2+1; else m=n/2; for(int i=0;i<m;i++) { if(!i || 阅读全文
posted @ 2021-01-27 23:41 Dazzling! 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 用vis数组判断没有对应类型的数字,不能用a[i]的值为0判断,因为0的值模5也为0. int a[10]; bool vis[10]; int cnt; int n; int main() { while(cin>>n) { memset(a,0,sizeof a); memset(vis,0,s 阅读全文
posted @ 2021-01-27 20:14 Dazzling! 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 环形前缀和。 dist[i]存储第i个结点到第i+1个结点的距离,sum[i]为前缀和数组,每次取两种走法(顺时针、 逆时针)当中距离的较小值即可。 const int N=1e5+10; int dist[N]; int sum[N]; int n,m; int main() { cin>>n; 阅读全文
posted @ 2021-01-27 18:33 Dazzling! 阅读(42) 评论(0) 推荐(0) 编辑
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 67 下一页