首页 > 其他分享 >C - Merge the balls

C - Merge the balls

时间:2024-04-28 21:57:10浏览次数:24  
标签:balls int topsecond sq Merge abc351 push topfirst

C - Merge the balls

https://atcoder.jp/contests/abc351/tasks/abc351_c

 

思路

使用stack 记录 序列路径

对栈顶两个元素 尝试做缩减处理。

 

Code

https://atcoder.jp/contests/abc351/submissions/52873456

int n;
stack<long long> sq;

int main()
{
    cin >> n;
    
    for(int i=0; i<n; i++){
        long long temp;
        cin >> temp;
        
        if (sq.size() == 0){
            sq.push(temp);
        } else {
            sq.push(temp);
            
            while(sq.size() >= 2){
                int topfirst = sq.top();
                sq.pop();
                
                int topsecond = sq.top();
                sq.pop();
                
                if (topfirst == topsecond){
                    sq.push(topfirst+1);
                } else {
                    sq.push(topsecond);
                    sq.push(topfirst);
                    break;
                }
            }
        }
    }
    
    cout << sq.size() << endl;

    return 0;
}

 

标签:balls,int,topsecond,sq,Merge,abc351,push,topfirst
From: https://www.cnblogs.com/lightsong/p/18164573

相关文章

  • Colored Balls
    这道题目的模型倒是可以记住我们发现这个配对很像摩尔投票,所以考虑原数列是否有主元素对于一个集合,我们选出其中最大的\(a_i\),假设剩余的\(a\)的和小于等于\(a_i\)(此时有主元素),那么比较显而易见的就是最终会分出\(a_i\)个组;否则的话,我们考虑下界\(\lceil\frac{\suma}{2}\rcei......
  • CodeForces 1951G Clacking Balls
    洛谷传送门CF传送门考虑用相邻两个球之间的距离来描述一个状态。设距离序列为\(a_1,a_2,\ldots,a_k\)(忽略\(0\))。考虑鞅与停时定理,设一个状态的势能为\(\sum\limits_{i=1}^kf(a_i)\),一次操作能使得势能期望减少\(1\)。那么:\[1=\frac{1}{n}\sum\limits_{i=1}^k......
  • git pull如果提示merge冲突,先进行git reset --hard origin/master 后再git pull
    前言全局说明gitpull如果提示merge冲突,先进行gitreset--hardorigin/master后再gitpull一、说明gitreset--hardorigin/mastergitreset--hardorigin/master是一个Git命令,它的作用是将本地的当前分支重置到远程分支origin/master的状态。这个命令会丢失......
  • 30 天精通 RxJS (18):可观察运算符 - switchMap, mergeMap, concatMap
    今天我们要讲三个非常重要的operators,这三个operators在很多的RxJS相关的library的使用示例上都会看到。很多初学者在使用这些library时,看到这三个operators很可能就放弃了,但其实如果有把这个系列的文章完整看过的话,现在应该就能很好接受跟理解。OperatorsconcatMapconcat......
  • 30 天精通 RxJS (17):Observable Operators - switch, mergeAll, concatAll
    今天我们要讲三个operators,这三个operators都是用来处理HigherOrderObservable。所谓的HigherOrderObservable就是指一个Observable送出的元素还是一个Observable,就像是二维数组一样,一个数组中的每个元素都是数组。如果用泛型来表达就像是Observable<Observab......
  • D. Colored Balls
    D.ColoredBallsThereareballsof$n$differentcolors;thenumberofballsofthe$i$-thcoloris$a_i$.Theballscanbecombinedintogroups.Eachgroupshouldcontainatmost$2$balls,andnomorethan$1$ballofeachcolor.Considerall$2^n$set......
  • MySQL 06 mysql 如何实现类似 oracle 的 merge into
    拓展阅读MySQLViewMySQLtruncatetable与delete清空表的区别和坑MySQLRulermysql日常开发规范MySQLdatetimetimestamp以及如何自动更新,如何实现范围查询MySQL06mysql如何实现类似oracle的mergeintoMySQL05MySQL入门教程(MySQLtutorialbook)MySQL04-E......
  • 30 天精通 RxJS (09):Observable Operator - skip, takeLast, last, concat, startWith, merge
    运营商skip我们昨天介绍了take可以取前几个送出的元素,今天介绍可以略过前几个送出元素的operator:skip,范例如下:varsource=Rx.Observable.interval(1000)varexample=source.skip(3)example.subscribe({ next:(value)=>{ console.log(value) }, error:(err)......
  • LeetCode in Python 88. Merge Sorted Array (合并两个有序数组)
    合并有序数组也有两种方法,区别是空间复杂度不同。第一种,重新开辟一个数组空间,大小为O(m+n),另外需要三个指针分别指向两个有序数组和新开辟的数组,依次判断两个数组内元素大小,不断更新指针即可。第二种,无需单独开辟空间,在第一个数组(该数组空间足够存放两个数组总长的数据)内进行......
  • Pandas Dataframe合并连接Join和merge 参数讲解
    文章目录函数与参数分析otheronhowlsuffix,rsuffix,suffixesleft_index,right_index函数与参数分析在pandas中主要有两个函数可以完成table之间的joinJoin的函数如下:DataFrame.join(other,on=None,how=‘left’,lsuffix=‘’,rsuffix=‘’,sort=False,va......