AtCoder Beginner Contest 310 - A B C E
题目传送门:abc 310
比赛摘记:
B题没读懂题意。。。如此简单题卡了好久
继续加油哈
A
简单,就是判断使用优惠券 Q 加一个价格最小的菜 D 便宜还是原价便宜,输入比较,在输出即可
B
打的时候题意没读懂。。。读懂了的时候时间已经过去一大半了qwq
就是给你一大堆产品,每个产品都有各自的价值 P 与功能 C 。问你是否存在两个产品[i,j],使得以下三个条件同时成立:
- 产品 j 拥有产品 i 的所有功能
- 要么
,要么产品 j 拥有产品 i 没有的功能
打时死于第三条,or没整明白
因为数据规模较小,暴力匹配即可
C
题意:
一个字符串与其翻转字符串同属一类,问你给定的许多字符串能分为多少类
思路:
利用set或者map标记某一类字符串是否出现过,每次没出现过的时候++ans,最终ans即为答案
过程较为简单,模拟统计,使用STL即可
E - NAND repeatedly
题意:
⊼ 表示逻辑运算与非,
思路:
注意到
首先我们知道与非有0出1,所以当
当
所以一遍前往后的递推式即可求解,我们统计到每个位置的0和1的数量,为了下一位做准备。那么统计的是什么0和1呢?就是
以样例00110
为例,我们可以画出下面的表:
i | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
0 | 0 | 1 | 1 | 0 | |
i=1 | 0 | 1 | 0 | 1 | 1 |
i=2 | x | 0 | 1 | 0 | 1 |
i=3 | x | x | 1 | 0 | 1 |
i=4 | x | x | x | 1 | 1 |
i=5 | x | x | x | x | 0 |
总 | 0:1,1:0 | 0:1,1:1 | 0:1,1:2 | 0:2,1:2 | 0:1,1:4 |
ans即为所有的1的个数和
我们用p[0]和p[1]来记录从前到后遍历i时0和1的个数。
- 当
时, - 当
时,我们就需要考虑前面的 的值,而此时 ,pp代表原来的值
感觉没有说清楚,看的时候结合上面那张表再理解理解?
好像可以再精简一点的,上面写的好理解,在理解的基础上会发现,出答案的方式有很多其实,比如说没必要统计每一个位置上1的个数,只需要统计0的个数就够了,因为1的个数无论在哪种情况都可以计算出来。
下为代码:
//>>>Qiansui #include<bits/stdc++.h> #define ll long long #define ull unsigned long long #define mem(x,y) memset(x,y,sizeof(x)) #define debug(x) cout << #x << " = " << x << endl #define debug2(x,y) cout << #x << " = " << x << " " << #y << " = "<< y << endl //#define int long long using namespace std; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef pair<ull,ull> pull; typedef pair<double,double> pdd; /* */ const int maxm=2e5+5,inf=0x3f3f3f3f,mod=998244353; int n; string ss; void solve(){ cin>>n>>ss; ll ans=0; int p[2]={0,0}; for(int i=0;i<n;++i){ int c=ss[i]-'0'; ans+=c; if(i){ if(c==0){ ans+=i; p[0]=1; p[1]=i; }else{ ans+=p[0]; swap(p[0],p[1]); ++p[c]; } }else ++p[c]; } cout<<ans<<'\n'; return ; } signed main(){ ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); int _=1; // cin>>_; while(_--){ solve(); } return 0; }
本文来自博客园,作者:Qiansui,转载请注明原文链接:https://www.cnblogs.com/Qiansui/p/17557098.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步