1. 仔细读题:另外两张牌和的个位数即为你所获得的点数。对于Subtask 1,枚举即可。50 分。

  2. 考虑:取 \(n-2\) 张牌和取答案的 \(2\) 张牌本质是一样的。因为若取符合条件的 \(n-2\) 张牌的和 \(sum\ \text{mod}\ 10\)必然为 0 。所以双重循环枚举所有的牌两两相加,把它们模 10 的余数与总和的余数对比,相等则输出。注意到若总和模 10 为 0 ,则直接输出 10。时间复杂度 \(O(n^2)\) ,80 分

#include <iostream>
#include <cstdio>
//#include <algorithm> using namespace std; int n,a[1000001],sum;
bool flag=false; int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
sum%=10;
if(sum==0){
printf("%d\n",10);
return 0;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if((i!=j)&&((a[i]+a[j])%10==sum)){
printf("%d\n",(a[i]+a[j])%10);
return 0;
}
printf("%d\n",0);
return 0;
}
  1. 注意到一个性质:由于最后组成答案的只有两个数,且卡牌数值范围为 \(1\) ~ \(10\) ,也就说明答案只有可能是两个相同的数不同的数。于是自然产生一种思路:用类似计数排序的方法,设一个数组 \(t\) ,记录每个数出现的次数。最后枚举每个数,若相同,则判断这个数出现的次数是否大于等于 2 ,若不同,则看这两个数是否都出现过。时间复杂度 \(O(n)\) ,可通过所有测试点。
#include <iostream>
#include <cstdio>
//#include <algorithm> using namespace std; int n,a[1000001],sum,t[100000001]; int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];
t[a[i]]++;
}
sum%=10;
if(sum==0){
printf("%d\n",10);
return 0;
}
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
if((i==j)&&(t[i]>=2)&&((i+j)%10==sum)){
printf("%d\n",(i+j)%10);
return 0;
}
else
if((i!=j)&&(t[i]&&t[j])&&((i+j)%10==sum)){ //注意这里首先要判断是否相等。为什么?
printf("%d\n",(i+j)%10);
return 0;
}
}
}
printf("%d\n",0);
return 0;
}

【做题笔记】P6014 [CSGRound3]斗牛的更多相关文章

  1. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  2. C语言程序设计做题笔记之C语言基础知识(上)

    C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...

  3. SDOI2017 R1做题笔记

    SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30

  4. SDOI2014 R1做题笔记

    SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(

  5. SDOI2016 R1做题笔记

    SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...

  6. LCT做题笔记

    最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...

  7. java做题笔记

    java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...

  8. SAM 做题笔记(各种技巧,持续更新,SA)

    SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...

  9. PKUWC/SC 做题笔记

    去年不知道干了些啥,什么省选/营题都没做. 现在赶应该还来得及(?) 「PKUWC2018」Minimax Done 2019.12.04 9:38:55 线段树合并船新玩法??? \(O(n^2)\ ...

  10. POI做题笔记

    POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集 ...

随机推荐

  1. mycat linux上目录介绍

    1.本文引用来自mycat官方文档,具体可以浏览mycat官网 2.linux系统下面的目录 MyCAT 有提供编译好的安装包,支持 windows.Linux.Mac.Solaris 等系统上安装与 ...

  2. Alan Walker MV 合辑01 by defender 歌词

    其实是歌词浏览,配套Alan Walker MV 合辑01 by defender You were the shadow to my life Did you feel us Another sta ...

  3. Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari

    spring-configuration-metadata.json spring-boot-autoconfigure-2.0.0.M7.jar!/META-INF/spring-configura ...

  4. 白面系列 mongoDB

    mongoDB和redis一样,都是noSQL技术之一. redis是Key-Value存储,mongoDB是文档存储. 文档存储一般用类似json的格式存储,存储的内容是文档型的.文档是一组键值(k ...

  5. bugku 这么多数据包

    看到之后有点懵逼 然后下载 下载之后发现是一个pacp后缀的流量数据包 然后用wireshark 然后只想到了 http过滤 然后发现不对 然后参考其他人的博客 经大佬提示, 一般 getshell ...

  6. NEKO's Maze Game

    NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms of a ...

  7. Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题

    Runtime.getRuntime.exec()执行linux脚本导致程序卡死问题问题: 在Java程序中,通过Runtime.getRuntime().exec()执行一个Linux脚本导致程序被 ...

  8. Vue的iview组件框架select远程搜索,选中后不刷新的问题

    1.场景:弹框内有一个下拉组件(支持搜索),当选择完数据后弹框关闭,再次打开后,下拉框内的数据是刚才选中的数据.原因:分析后觉得是搜索内容没有清空,导致下拉的数据只有一个 2.解决方案 a .解决:调 ...

  9. 大数据-Storm

    Storm 流式处理框架 Storm是实时的,分布式,高容错的计算系统.java+cljoure Storm常驻内存,数据在内存中处理不经过磁盘,数据通过网络传输. 底层java+cljoure构成, ...

  10. web前端基础-css-尺寸边框

    尺寸和边框: 一.尺寸 行内元素是不能设置宽和高的,其高度是由元素里面的内容的高度撑起来的: 行内块元素可以设置宽和高,当行内块元素没有设置宽高的时候,行内块元素的宽高是其默认的宽高: 块级元素:可以 ...