【Low版】HAUT - OJ - Contest1035 - 2017届新生周赛(六)题解
题目描述
学校要派6名同学组成两个队(一个队3个人)去参加比赛,每个同学有一个分数,学校希望两个队的分数相等,每个队的分数为该队所有队员的分数的总和。
你的任务是判断是否可能组成两个队使两个队的分数相等。
输入
第一行:整数T,测试实例个数。
对于每组测试实例:
输入一行:包含6个整数a1, ..., a6 (0 ≤ ai ≤ 1000) ,代表每个同学的分数
输出
样例输入
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种情况;分成的两组数中每组数不要求顺序,故
每次枚举一半就可以了!(自己动手画画)
---------------------------------------------------------
题目描述
有水平放置的编号从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循环分别代表三个指针进行遍历,轻松解决问题!
题目描述
给你两个一维数组(都为大于等于1且小于等于9的数),从第一个数组中取至少一个数字,再从第二个数组中取至少一个数字,用你选取的数字组成一个整数,求能组成的最小整数。
如果从第一个数组中选取的数与从第二个数组中选取的数相等,只保留一个即可。
输入
第一行:一个整数T,表示测试实例个数
对于每组测试实例:
第一行:包含两个整数n 和 m (1 ≤ n, m ≤ 9) —— 分别表示两个数组的大小
第二行:包含n个整数a1, a2, ..., an (1 ≤ ai ≤ 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数组的最小数可以放前面,也可以放到后面去!
题目描述
我们认为一个括号匹配,即对任意一个')',在其左侧都有一个'('与它匹配,且他们形成一一映射关系。
输入
第一行:一个整数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届新生周赛(六)题解的更多相关文章
- 电信学院第一届新生程序设计竞赛题解及std
首先非常感谢各位同学的参加,还有出题验题同学的辛勤付出 昨天想偷懒就是不想再把我C++11的style改没了,大家看不懂的可以百度一下哦,懒得再写gcc了,毕竟代码是通的 //代表的是行注释,所以那个 ...
- python low版线程池
1.low版线程池设计思路:运用队列queue 将线程类名放入队列中,执行一个就拿一个出来import queueimport threading class ThreadPool(object): ...
- 解决socket粘包的两种low版模式 os.popen()和struct模块
os.popen()模式 server端 import socket import os phone = socket.socket() # 实例化一个socket对象 phone.bind((&qu ...
- ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL
ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. RGBD深度摄像头 ...
- C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...
- Autocad2017破解版下载|Autodesk Autocad 2017中文破解版下载 64位(附注册机/序列号)
Autocad2017是Autodesk公司开发的自动计算机辅助设计软件,可用于二维绘图.详细绘制.设计文档和基本三维设计,它具有良好的用户界面,允许用户通过交互菜单或命令行方式来进行各种操作,包括图 ...
- 云时代 • 新契机:2017届中国SaaS产业大会圆满落幕
2017年5-6日,由拓普会展携手中国云体系产业创新战略联盟主办,江苏省企业信息化协会,浙江省企业信息化促进会,广东省首席信息官协会,CIO时代学院,IDC点评网协办以及上海市网购商会,中国信息化推进 ...
- LOW版统计词频
import string path = 'waldnn' with open(path,'r') as text: words = [raw_word.strip(string.punctuatio ...
- (haut oj 1261 ) 地狱飞龙 利用不定积分求值
题目链接:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1261 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心 ...
随机推荐
- [LeetCode] 800. Similar RGB Color 相似的红绿蓝颜色
In the following, every capital letter represents some hexadecimal digit from 0 to f. The red-green- ...
- 【Sqoop学习之二】Sqoop使用
环境 sqoop-1.4.6 一.基本命令1.帮助命令 [root@node101 ~]# sqoop help Warning: /usr/local/sqoop-/../hbase does no ...
- SpringBoot2+Druid+JdbcTemplate+MySql实现增删改查
1.配置pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- TCP/IP学习笔记17--TCP-- 窗口控制 重发控制 流控制
事业无穷年 -- 韩愈 利用窗口控制提高速度: TCP传输数据是,以一个段为单位(每次发送一个数据包),每发一个段需要一次确认应答,这样就难免存在这样的缺点:包的往返时间越长,通信性能就越低. 为解决 ...
- 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?
处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU? https://www.eefocus.com/mcu-dsp/371324 2016-10-28 10:28 作者:付丽华预计 9 ...
- [hdu 1062] Text Reverse | STL-stack
原题 题目大意: t组数据,每组为一行,遇到空格时讲前面的单词反转输出. 题解: 显然的栈题,遇到空格时将当前栈输出清空即可 #include<cstdio> #include<st ...
- Markdown新手入门
目录 Markdown新手入门 一.字体样式 二. 标题 三.列表 四.引用和代码块 五.插入图片和超链接 六.创建表格 七. 上标和下标 八.着重显示和高亮显示 我是尾巴 Markdown新手入门 ...
- Sql CLR创建一个简单的表值函数
1.创建面目: 2. 添加函数代码: using System; using System.Data.Sql; using Microsoft.SqlServer.Server; using Syst ...
- 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)
原文:如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 我们都知道可以通过在 Visual Studio 中设置输出路径(OutputPath)来更改项目输 ...
- [转]mongodb authentication 设置权限之后,新建个管理账户和一般数据库用户,在win 7 64bit 环境下测试使用实例
如果之前安装mongodb时没有使用 --auth,那么必须要卸载MongoDB服务,进行重新安装,设置账号权限才生效! 主要是解决在测试使用mongo db 时候,总是出现的MongoAuthent ...