H. Gambling
自己的代码属实丑陋,虽然该注意到的点都想到了,但就是打不对。可能还是思路不够清晰,代码能力不过关。 思路: 1.刚开始的钱是1元。因此对于一个数来说,后面跟着的数在数量上不能超过该数字的有效数量(抵消的时候记录最大值)。 2.主要发生抵消后的数字大于等于1,那么就记录更新。过程中记录最大值和左右端点。 代码:
#include
#define int long long
#define ios cin.tie(0),cout.tie(0),ios::sync_with_stdio(0);
#define endl '\n'
#define ULL unsigned long long
using namespace std;
const double eps=1e-8;
const int mod=998244353;
const int N=1e6+5;
const int P=131;
int n,a[N];
unordered_mapmp;
unordered_mapval;
void solve()
{
mp.clear();
val.clear();
cin>>n;
for(int i=1;i>a[i];
int mx=1,ans=a[1],l=1,r=1;
for(int i=1;i
关注
打赏