问题 A: 比赛

时间限制: 2 秒 内存限制: 256 MB | 提交: 393 解决: 98
提交 状态

题目描述

学校要派6名同学组成两个队(一个队3个人)去参加比赛,每个同学有一个分数,学校希望两个队的分数相等,每个队的分数为该队所有队员的分数的总和。

你的任务是判断是否可能组成两个队使两个队的分数相等。

输入

第一行:整数T,测试实例个数。

对于每组测试实例:

输入一行:包含6个整数a1, ..., a6 (0 ≤ ai ≤ 1000) ,代表每个同学的分数

输出

每组测试实例输出一行:如果可能组成两个队使两个队的分数相等,则输出"YES";否则输出"NO"。

样例输入

2
1 3 2 1 2 1
1 1 1 1 1 99

样例输出

YES
NO

//我的思路就是直接暴力for循环打表生成所有的有顺序的组合数列,其实这也可以作为一道深
搜入门基础题目!《啊哈算法》上有原题及形象的代码!

#include<stdio.h>     //A
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
#define ll long long
#define N 200
int a[][];
int main()
{
int i,T,i1,i2,i3,i4,i5,i6;
int m,n,cnt,flag;
scanf("%d",&T);
while(T--)
{
cnt=;flag=;
for(i=;i<=;i++)
scanf("%d",&a[][i]);
for(i1=;i1<=;i1++){
for(i2=;i2<=;i2++){
if(i2==i1)continue;
for(i3=;i3<=;i3++){
if(i3==i1||i3==i2)continue;
for(i4=;i4<=;i4++){
if(i4==i1||i4==i2||i4==i3)continue;
for(i5=;i5<=;i5++){
if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
for(i6=;i6<=;i6++){
if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)
continue;
else
{
++cnt;
a[cnt][]=a[][i1];a[cnt][]=a[][i2];a[cnt][]=a[][i3];
a[cnt][]=a[][i4];a[cnt][]=a[][i5];a[cnt][]=a[][i6];
}
}
}
}
}
} }
for(i=;i<=cnt;i++)
{
if(a[i][]+a[i][]+a[i][]==a[i][]+a[i][]+a[i][]){
flag=;
break;
}
}
if(flag)
printf("YES\n");
else
printf("NO\n");
} return ;
}

//其实不然

#include<stdio.h>   //A题
#define N 10
int main()
{
int n,a[N],i;
scanf("%d",&n);
while(n--)
{
for(i=;i<=;i++)
scanf("%d",&a[i]);
if(a[]+a[]+a[]==a[]+a[]+a[]||a[]+a[]+a[] ==a[]+a[]+a[]||a[]+a[]+a[]==a[]+a[]+a[]||a[]+a[]+a[]==a []+a[]+a[]||a[]+a[]+a[]==a[]+a[]+a[]||a[]+a[]+a[]==a []+a[]+a[]||a[]+a[]+a[]==a[]+a[]+a[]||a[]+a[]+a[]==a []+a[]+a[]||a[]+a[]+a[]==a[]+a[]+a[]||a[]+a[]+a[]==a []+a[]+a[])
printf("YES\n");
else
printf("NO\n"); }
return ;
}

//没错上面的代码也可以,一共10种情况;分成的两组数中每组数不要求顺序,故
每次枚举一半就可以了!(自己动手画画)

---------------------------------------------------------

问题 B: 消灭怪物

时间限制: 2 秒 内存限制: 256 MB | 提交: 125 解决: 36
提交 状态

题目描述

有水平放置的编号从1到n的n个格子,每个格子中有一个或者多个怪物。你可以在任何一个格子里投下炸弹,这个格子里的怪物都将受到伤害,当每个怪物第一次受到伤害,它会立即移动到相邻的格子(格子n内的怪物只能移动到格子n-1,格子1内的怪物只能移动到格子2),当一个怪物受到两次伤害时,他将彻底被消灭。怪物只有在第一次受到伤害时才一移动,它们自己不会移动。

你要找出消灭所有怪物所需要的最小炸弹数。

输入

第一行:整数T,表示测试实例个数。

对于每组测试实例:

输入一个整数n (2 ≤ n ≤ 100 000) ——表示有n个格子。

输出

每组测试实例输出一行:包括一个整数——消灭所有怪物所需要的最小炸弹数。

样例输入

2
2
3

样例输出

3
4
#include<stdio.h>
#include<iostream> //问题 E: QAQ
#include<algorithm>
#include<string.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
#define ll long long
#define N 200
char a[]; int main()
{
int T,i,j,k,len,cnt;
scanf("%d",&T);
while(T--)
{
cnt=;
scanf("%s",a);
len=strlen(a);
for(i=; i<len; i++)
{
for(j=i+; j<len; j++)
{
for(k=j+; k<len; k++)
{
if(a[i]=='Q'&&a[j]=='A'&&a[k]=='Q')
{
cnt++;
}
}
}
}
printf("%d\n",cnt);
} return ;
}

//三重FOR循环分别代表三个指针进行遍历,轻松解决问题!

问题 D: 最小的数

时间限制: 1 秒 内存限制: 256 MB | 提交: 192 解决: 29
提交 状态

题目描述

给你两个一维数组(都为大于等于1且小于等于9的数),从第一个数组中取至少一个数字,再从第二个数组中取至少一个数字,用你选取的数字组成一个整数,求能组成的最小整数。
如果从第一个数组中选取的数与从第二个数组中选取的数相等,只保留一个即可。

输入

第一行:一个整数T,表示测试实例个数
对于每组测试实例:

第一行:包含两个整数n 和 m (1 ≤ n, m ≤ 9) —— 分别表示两个数组的大小
第二行:包含n个整数a1, a2, ..., an (1 ≤ ai ≤ 9) ——第一个数组

第三行:包含m个整数 b1, b2, ..., bm (1 ≤ bi ≤ 9) 第二个数组

输出

每组测试实例输出一行:包含一个整数 —— 能组成的最小整数

样例输入

2
2 3
4 2
5 7 6
8 8
1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1

样例输出

25
1
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define INT 0x7fffffff
#define INF 0x3f3f3f3f int main()
{
int t, n, m, a[], b[];
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &m);
for(int i=; i<n; i++)
scanf("%d", &a[i]);
for(int i=; i<m; i++)
scanf("%d", &b[i]);
sort(a,a+n);
sort(b, b+m);
int s=;
for(int i=; i<n; i++)
{
for(int j=; j<m; j++)
{
if(a[i]==b[j])
s=min(min(a[i], b[j]), s);
}
}
if(s!=-&&s!=)
printf("%d\n", s);
else if(a[]<b[])
printf("%d\n", a[]*+b[]);
else
printf("%d\n", b[]*+a[]);
}
return ;
}

//这个程序用到了库函数sort排序,提供一组样例,数组a:1 2 9,数组b:3 4 9 ,按照题意该组数据的最小值为9,不应该为13!

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
#define ll long long
#define N 200
int a[],b[]; int main()
{
int T,n,m,i,j,minn1,minn2,ans;
scanf("%d",&T);
while(T--)
{
minn1=minn2=;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++){
scanf("%d",&a[i]);
minn1=min(minn1,a[i]); //表示A数组的最小值
}
for(i=;i<=m;i++){
scanf("%d",&b[i]);
minn2=min(minn2,b[i]); //表示B数组的最小值
}
if(minn1==minn2)
ans=minn1;
else
ans=min(minn1*+minn2,minn1+minn2*);
for(i=;i<=n;i++){
for(j=;j<=m;j++){
if(a[i]==b[j]) //如果出现重复值就拿重复值跟ans比较
{
if(ans>a[i])
ans=a[i];
}
}
}
printf("%d\n",ans);
} return ;
}

//上面这个代码用的是一般排序,有一点需要注意的是a数组的数跟b数组的数进行组合,a数组的最小数可以放前面,也可以放到后面去!

问题 F: 括号配对

时间限制: 1 秒 内存限制: 256 MB | 提交: 31 解决: 17
提交 状态

题目描述

给出一串长度为n的括号序列(只包含小括号),计算出最少的交换(两两交换)次数,使整个括号序列匹配。
我们认为一个括号匹配,即对任意一个')',在其左侧都有一个'('与它匹配,且他们形成一一映射关系。

输入

第一行:一个整数T,表示测试实例个数
对于每组测试实例:

第一行:整数n(0≤n≤5×10^6 ),表示括号序列长度
第二行:一个字符串,表示括号

输出

每组测试实例输出一行:包含一个整数 ,表示最少的交换次数

样例输入

2
6
(()))(
6
)))(((

样例输出

1
2
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define INT 0x7fffffff
#define INF 0x3f3f3f3f char ch[];
int main()
{
int t, n, m; scanf("%d", &t);
while(t--)
{
int s=;
scanf("%d", &n);
scanf("%s", ch);
for(int i=; i<n; i++)
{
if(ch[i]=='(')
s++;
else
{
if(s>)
s--;
}
}
printf("%d\n", (s+)/);
}
return ;
}

//找规律题

												

【Low版】HAUT - OJ - Contest1035 - 2017届新生周赛(六)题解的更多相关文章

  1. 电信学院第一届新生程序设计竞赛题解及std

    首先非常感谢各位同学的参加,还有出题验题同学的辛勤付出 昨天想偷懒就是不想再把我C++11的style改没了,大家看不懂的可以百度一下哦,懒得再写gcc了,毕竟代码是通的 //代表的是行注释,所以那个 ...

  2. python low版线程池

    1.low版线程池设计思路:运用队列queue 将线程类名放入队列中,执行一个就拿一个出来import queueimport threading class ThreadPool(object): ...

  3. 解决socket粘包的两种low版模式 os.popen()和struct模块

    os.popen()模式 server端 import socket import os phone = socket.socket() # 实例化一个socket对象 phone.bind((&qu ...

  4. ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL

    ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. RGBD深度摄像头 ...

  5. C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解

    C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...

  6. Autocad2017破解版下载|Autodesk Autocad 2017中文破解版下载 64位(附注册机/序列号)

    Autocad2017是Autodesk公司开发的自动计算机辅助设计软件,可用于二维绘图.详细绘制.设计文档和基本三维设计,它具有良好的用户界面,允许用户通过交互菜单或命令行方式来进行各种操作,包括图 ...

  7. 云时代 • 新契机:2017届中国SaaS产业大会圆满落幕

    2017年5-6日,由拓普会展携手中国云体系产业创新战略联盟主办,江苏省企业信息化协会,浙江省企业信息化促进会,广东省首席信息官协会,CIO时代学院,IDC点评网协办以及上海市网购商会,中国信息化推进 ...

  8. LOW版统计词频

    import string path = 'waldnn' with open(path,'r') as text: words = [raw_word.strip(string.punctuatio ...

  9. (haut oj 1261 ) 地狱飞龙 利用不定积分求值

    题目链接:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1261 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心 ...

随机推荐

  1. 安装hbase分布式集群出现的报错- ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    可能的原因如下: 1. 时间没有同步 HBase需要结点间的时间必须是同步的,可以使用date命令在Linux查看时间(同步时间命令:ntpdate 1.cn.pool.ntp.org) 2. 底层采 ...

  2. 分享一下我的个人微信小程序

    分享一下我的个人微信小程序 1.有我平时整理的一些小程序相关的技术,供大家参考. 2.有几个好玩的例子 有问题可以一起参考

  3. 阿里云移动推送 安卓项目添加SDK步骤

    Gradle的Emas服务插件会加载您下载的 aliyun-emas-services.json 文件.请修改工程的build.gradle使用该插件.配置步骤如下: 1. 修改项目级目录下build ...

  4. Xcode使用 Organizer 分析 Crash logs

    xcode下载地址 https://developer.apple.com/download/more/

  5. springmvc+spring+mybatis的整合(推荐新手看看)

    下面开始整合(由于有点多就不一一介绍了) 配置sqlMapConfig.xml(空文件即可) <?xml version="1.0" encoding="UTF-8 ...

  6. String初解

    String 类型是不可变的对象,因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后有一次看到一个代码段,如下: 这段代码返回的是ture,当时以为是f ...

  7. PHP检测日期格式

    <?php $date1 = '2019-01-01'; $date2 = '2019-01-01 23:59'; $date3 = '2019-01-01 23:59:59'; $date4 ...

  8. AR*客户地点分配OU

    DECLARE p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type; p_cust_site_use_rec ...

  9. Java开发笔记(一百一十二)Java11新增的HttpClient

    前面介绍了基于HttpURLConnection的网络访问请求,包括GET方式调用接口.POST方式调用接口.下载网络文件.上传本地文件这四种HTTP操作.虽然通过HttpURLConnection能 ...

  10. Matplotlib:绘图和可视化

    Matplotlib:绘图和可视化 简介 简单绘制线形图 plot函数 支持图类型 保存图表 一 .简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分 ...