首页 > 其他分享 >均分纸牌

均分纸牌

时间:2023-12-17 09:11:06浏览次数:22  
标签:牌堆 自洽 纸牌 int 号牌 均分 include

 [洛谷 P1031](https://www.luogu.com.cn/problem/P1031)  [ybt 1320](http://ybt.ssoier.cn:8088/problem_show.php?pid=1320)
有 $N$ 堆纸牌,总数为 $N$ 的倍数 左右拿的操作可以看成一种,不妨规定从游戏向左拿视为正方向,则从左向右为负增加,不拿为0
最好的情况是**相邻两堆纸牌之间只拿一次**,在这种情况下,最大次数为 $N-1$ 次
我们使用类似**前缀和**的搜索方式,(因为规定从右向左)从一号牌堆向右搜索
对于任意牌堆 $i$, 若牌堆 $1$ ~ $i$ 的总牌数没有达到平均数 $*i$,则必然至少需要拿一次
**从一号牌堆开始**:若一号没有达到平均数,则必然需要二号牌堆向左拿一次,以达到一号自洽
**继续向后推进**:对于每个从1到i牌堆组成的小系统,若其本身不自洽(即上面提到),则需要外界牌堆向内补充以达到自洽。
同时由于从左向右扫,所以可以确保已经走过且未自洽的系统已经被计算且已经被处理
$n$ 号没有必要扫,所以循环从1到n-1
代码如下
```cpp #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N=109; int n,a[N],c[N],s,ans; int main(){     cin>>n;     for(int i=1;i<=n;i++){         cin>>a[i];         s+=a[i],c[i]=c[i-1]+a[i];     }     s/=n;     for(int i=1;i<n;i++)         if(s*i!=c[i])ans++;     cout<<ans;     return 0; }
```

标签:牌堆,自洽,纸牌,int,号牌,均分,include
From: https://www.cnblogs.com/plokmnjiu/p/17908763.html

相关文章

  • python题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个
    程序分析:无。实例(Python2.0+)#!/usr/bin/python#-*-coding:UTF-8-*-if__name__=='__main__':i=0j=1x=0while(i<5):x=4*jforiinrange(0,5):if(x%4!=0):breakelse:i......
  • MysSQL 行转列以及列转行(学生的各科成绩,以及总分和平均分)
    一、行转列即将原本同一列下多行的不同内容作为多个字段,输出对应内容。1.建表语句--新建学生成绩表DROPTABLEIFEXISTStb_score;createtabletb_score(idint(11)notnullauto_increment,user_noVARCHAR(32)notnullcomment'学生工号',subject......
  • 「NOIP2002」均分纸牌
    ​题目描述有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆......
  • 公元2023年7月20日20:10:排队接水,均分纸牌
    今日AC二道贪心的题目①P1223排队接水-洛谷|计算机科学教育新生态(luogu.com.cn)#include<bits/stdc++.h>usingnamespacestd;intn;doublettime;structp{//题目需输出编号,所以用一结构体intb,time;}t[1005];boolcmp(px,py){、、排序比较函数retu......
  • [NOIP2002 提高组] 均分纸牌
    题目描述有\(N\)堆纸牌,编号分别为\(1,2,\ldots,N\)。每堆上有若干张,但纸牌总数必为\(N\)的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为\(1\)堆上取的纸牌,只能移到编号为\(2\)的堆上;在编号为\(N\)的堆上取的纸牌,只能移到编号为\(N-1\)的堆上;其他......
  • CCSP2019T2_纸牌计数 | 2019苏州CCSP大学生计算机系统与程序设计竞赛
    题目描述偶然在CSDN看到有人写了CCSP2019T2_纸牌计数的题解,突然想起来是一个不错的计数、dp题。以前的U盘找不到了,记得当时存了一步步偏分到AC代码,可惜。又想起来18年打铁了。。。此人的题解的链接CCSP201902纸牌计数——解题报告当年一共有5题,取自:https://www.sohu.com/a/34......
  • 76 评委给打分去掉最高分 去掉最低分 求平均分
    packagecom.fqs.test;importjava.util.Random;importjava.util.Scanner;publicclasshello{publicstaticvoidmain(String[]args){//评委打分评委个数6个//分数的范围1到100//去掉最高分去掉最低分剩下的4个评委的平均分......
  • 求平均分
    1.问题描述在歌星大赛里,有10个评委打分,分数从1到100,选手最终得分:去掉一个最高分和一个最低分,剩下的分数求平均值即为得分。2.问题分析这里做一个数组存入十个分数,可以利用循环结构来解决问题,然后再次利用循环找到最高分和最低分去掉,求出平均分3.算法设计定义一个长度为10的整......
  • 课程平均分,出现负数值结束循环(布尔变量,break)
    计算学生五门课程的平均分(如果输入的为负数,则提示用户结束循环) publicstaticvoid第十八题(){System.out.print("输入学生姓名:");Stringa=input.next();......
  • 定义学生结构体[姓名,年龄,分数] 实现计算平均分数,最大年龄信息,函数的输入与输出
    1#ifndef__HEAD_H__2#define__HEAD_H__3#include<stdlib.h>4#include<string.h>5#include<stdio.h>6//声明学生数据类型7structStudent{8......