POJ-1959 Darts
Darts
Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 1286 Accepted: 741
Description
Background
Many nations (including Germany) have a strange tradition of throwing small arrows at round flat targets (usually, these small arrows are called darts and so is the game).
In a darts game, the target consists of a flat circle which is divided into slices and rings. The slices are numbered from 1 to 20 and the rings are called double or treble ring (see Figure 5). The center part of the board is called the bull’s eye which is further subdivided into an inner part (the real bull’s eye) and an outer part (called the bull, see Fig. 5).
Players take turns in throwing the darts at the board. Their score depends on the areas they hit with their darts. Hitting the 20 slice in the double ring scores 2 * 20 = 40 points. Hitting the treble ring multiplies the score by 3. The inner part of the bull’s eye counts 50, the outer part 25 points.
Every turn consists of 3 darts being thrown at the dartboard by a player and his score is the sum of the scores of all darts which hit the dartboard in one of the numbered areas.
Problem
Your friends have played darts yesterday and from their match the scores are still on the blackboard in your room. From reading the scores, you would like to know, how the individual players threw their darts and where they could have hit the dartboard. You are to write a program which, given the score of a turn,reconstructs the number of possible distinct combinations of hits of the three darts on the dartboard ignoring the order in which the darts are thrown.
As an example, consider the overall score of 3 of a player. This could have happened as follows:
3 = 0 + 0 + 1*3 one dart hits slice 3
3 = 0 + 0 + 3*1 one dart hits slice 1 in treble ring
3 = 0 + 1*1 + 1*2 one dart hits slice 1 and one dart hits slice 2
3 = 0 + 1*1 + 2*1 one dart hits slice 1 and one dart hits slice 1 in double ring
3 = 1*1 + 1*1 + 1*1 all three darts hit slice 1
The resulting sum of possible distinct combinations is 5.
A more complex example is score 9:
9 = 0 + 0 + 1*9 one dart hits slice 9
9 = 0 + 0 + 3*3 one dart hits slice 3 in treble ring
9 = 0 + 1*1 + 1*8 one dart hits slice 1 and one dart hits slice 8
9 = 0 + 1*1 + 2*4 one dart hits slice 1 and one dart hits slice 4 in double ring
…
9 = 0 + 3*2 + 1*3 one dart hits slice 2 in treble ring and one dart hits slice 3
9 = 1*1 + 1*1 + 1*7 two darts hit slice 1 and one dart hits slice 7
…
9 = 2*1 + 3*1 + 2*2 one dart hits slice 1 in double ring, one dart hits slice 1 in treble ring and one dart hits slice 2 in double ring
9 = 1*3 + 1*3 + 1*3 three darts hit slice 3
9 = 1*3 + 1*3 + 3*1 two darts hit slice 3 and one dart hits slice 1 in treble ring
9 = 1*3 + 3*1 + 3*1 one dart hits slice 3 and two darts hit slice 1 in treble ring
9 = 3*1 + 3*1 + 3*1 three darts hit slice 1 in treble ring
What is the number of combinations? Write a program to find out.
Input
The first line contains the number of scenarios.
For each scenario, you are give a dart score as a single positive integer on a line by itself.
Output
The output for every scenario begins with a line containing “Scenario #i:”, where i is the number of the scenario starting at 1. Then print the number of possible dart score combinations on a line by itself.Finish the output of every scenario with a blank line.
Sample Input
2
3
9
Sample Output
Scenario #1:
5
Scenario #2:
41
#include <iostream>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
#include <math.h>
using namespace std;
int n;
int a[63]={
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,
3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,
25,50
};
int main()
{
int t;
scanf("%d",&t);
int res;
int cas=0;
while(t--)
{
res=0;
scanf("%d",&n);
for(int i=0;i<63;i++)
{
for(int j=i;j<63;j++)
{
for(int k=j;k<63;k++)
{
if(a[i]+a[j]+a[k]==n)
{
res++;
}
}
}
}
printf("Scenario #%d:\n",++cas);
printf("%d\n\n",res);
}
return 0;
}
POJ-1959 Darts的更多相关文章
- poj 1959 Darts 同意反复组合
水题.直接贴代码. //poj 1959 //sep9 #include <iostream> using namespace std; int n; int f[128]; int so ...
- poj 动态规划题目列表及总结
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- POJ 动态规划题目列表
]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322 ...
- poj 动态规划的主题列表和总结
此文转载别人,希望自己可以做完这些题目. 1.POJ动态规划题目列表 easy:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, ...
- [转] POJ DP问题
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- POJ动态规划题目列表
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- dp题目列表
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- DP题目列表/弟屁专题
声明: 1.这份列表不是我原创的,放到这里便于自己浏览和查找题目. ※最近更新:Poj斜率优化题目 1180,2018,3709 列表一:经典题目题号:容易: 1018, 1050, 1083, 10 ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
随机推荐
- windows7 安装IIS没有default web site 解决方法
因当时是第一次在Windows 7上使用IIS,不小心把default web site删除了,后来无论怎么重装IIS都不行,最后想到能不能直接把别人安装好后的IIS相关文件夹拷过来使用,用宿舍一哥们 ...
- C# winform pictureBox如何突出显示,放大并给pictureBox边框变色
PictureBox old = null; private void pictureBox2_Click(object sender, EventArgs e) { PictureBox p = ( ...
- 【能力提升】SQL Server常见问题介绍及高速解决建议
前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题.及高速解决这些问题.这些问题是数据库的常规管理问题,对于非常多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 以下一些问题 ...
- SpringMVC由浅入深day01_2springmvc入门程序
2 入门程序 2.1 需求 以案例作为驱动. springmvc和mybaits使用一个案例(商品订单管理). 功能需求:商品列表查询 2.2 环境准备 数据库环境:mysql5.5 先导入sql_t ...
- 【AI】卷积
一 边界补充 1 补零填充 2 边界复制填充 3 镜像填充 4 块填充 二 卷积核 1 平滑均值滤波 2 高斯平滑 3 图像锐化 4 梯度Prewitt 5 Soble边缘检测:垂直梯度水平梯度 6 ...
- Nginx 72万连接性能测试(一)
转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到 ...
- RabbitMq 之简单队列
简单队列类似于我们的生产者,消费者, 一个生产者,对应一个消费者. 直接上代码: package com.j1.rabbitmq.simple; import com.j1.rabbitmq.util ...
- NUC972配置为支持NFS
系统平台:virtualbox3.2.10+ubuntu10.10 安装nfs: #sudo apt-get install nfs-kernel-server ubuntu10.10中的已经是最新版 ...
- LINUX安装中文输入法和那些大坑
明明有很多事要做,却偏偏不知道要做什么,这种感觉,很令人上火. 一.基础知识 在原生ubuntu14.04英文环境系统中只有IBus拼音,真的好难用.由于搜狗输入法确实比Linux系统下其它的中文输入 ...
- LinQ的初步学习与总结
嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单 ...