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. abp demo运行1

    1.从官方网站下载demo 如下: https://aspnetboilerplate.com/Templates 填写响应的信息,下载demo 2.vs2017打开demo,如下图: 3.安装.ne ...

  2. C++——多态性

    多态是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为: 多态的实现:函数重载:运算符重载:虚函数 为什么需要重载运算符? 在C++没有复数运算,进行复数运算之前我们要事先写一个复数类, ...

  3. 解决pjax重复绑定

    个人博客 地址:http://www.wenhaofan.com/article/20180929002529 1.所有js统一在pjax容器外引入 在pjax容器外引入的js只会被引入一次,所以不会 ...

  4. android TextView 支持长按自由复制

    因为EditText支持系统的长按自由复制,所以只需要把EditText通过配置达到TextView效果就行了 <EditText android:id="@+id/subject_i ...

  5. 录入规则文件名到CSV文件

    import os import sys import csv # 导出到csv文件 def export_to_csv(datas): with open('export.csv', 'w', ne ...

  6. idea 配置 tomcat 教程

    最近在搞一个项目需要用到idea 配置tomcat,翻了翻网上的帖子发现稂莠不齐,最后决定还是自己写个吧!(其实我挺蠢的走了好多的弯路,哎~) 1.首先准备一个需要大家tomcat的工程,然后使用id ...

  7. Mac 上完美解决SVN问题及svn软件

    注:本文是转自https://blog.csdn.net/qq_40144558/article/details/80630466 svn对Mac的支持不算美好,几乎所有软件都很繁琐,我们作为开发其实 ...

  8. HTML的表单标签汇总

    HTML的表单标签汇总 表单的元素格式: 1. 账号.密码.提交.重置 语法: <p>账号:<input type="text" name="usern ...

  9. 题解 【Codefoeces687B】Remainders Game

    题意: 给出c1,c2,...cn,问对于任何一个正整数x,给出x%c1,x%c2,...的值x%k的值是否确定; 思路: 中国剩余定理.详见https://blog.csdn.net/acdream ...

  10. [USACO19OPEN]I Would Walk 500 Miles 贪心

    题目 洛谷P5425(点击可跳转) 题目描述 Farmer John想要将他的编号为 \(1 \ldots N\)的 N N 头奶牛( \(N \leq 7500\) )分为非空的 \(K\) 组( ...