关注
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
string str;
str = Console.ReadLine();
string[] ss = str.Split(' ');
int n = int.Parse(ss[0]);
int x = int.Parse(ss[1]);
List<List<int>> result = new List<List<int>>();
Dictionary<int, int> state = new Dictionary<int, int>();
GetAllPossible(n, n, x, ref state, ref result);
int possibles = 0;
int all = Convert.ToInt32(Math.Pow(6, n));
for (int i = 0; i < result.Count; i++)
{
int sum = 0;
result[i].ForEach(t =>
{
//Console.Write($"{t} ");
sum += t;
});
//Console.WriteLine($"sum={sum}");
if (sum > x)
{
possibles++;
}
}
int g = GCD(all, possibles);
Console.WriteLine($"{possibles / g}/{all / g}");
Console.ReadKey();
}
static int GCD(int a, int b)
{
int i;
for (i = a; i > 0; i--)
{
if ((a % i == 0) && (b % i == 0)) break;
}
return i;
}
static void GetAllPossible(int n, int k, int x, ref Dictionary<int, int> state, ref List<List<int>> result)
{
k--;
//n为骰子数量
//k为当前骰子序号
//i为当前骰子点数
if (k >= 0)
{
for (int i = 1; i <= 6; i++)
{
state[k] = i;
//Console.WriteLine($"第{n + 1}个骰子点数:{i}");
//Console.WriteLine($"state[{k}]={state[k]}");
if (k == 0)//结束一次深入
{
List<int> r = new List<int>();
for (int j = 0; j < n; j++)
{
r.Add(state[j]);
}
result.Add(r);
}
GetAllPossible(n, k, x, ref state, ref result);
}
}
}
}
第3题时间过了才完成,不知道对不对。。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
745496次浏览 11911人参与
# 你的工作大概什么时候入职? #
2444次浏览 33人参与
# 海康威视求职进展汇总 #
93990次浏览 1130人参与
# 百度工作体验 #
23707次浏览 243人参与
# 2022届毕业生现状 #
320216次浏览 4434人参与
# 今年形式下双非本找得到工作吗 #
7294次浏览 157人参与
# 你的秋招进行到哪一步了 #
358323次浏览 6309人参与
# 产品实习,你更倾向大公司or小公司 #
37269次浏览 577人参与
# 非技术岗是怎么找实习的 #
75663次浏览 1413人参与
# 比亚迪求职进展汇总 #
166590次浏览 1234人参与
# 你觉得比亚迪今年还有春招吗? #
46056次浏览 331人参与
# 学历对求职的影响 #
133030次浏览 1510人参与
# 面试等了一周没回复,还有戏吗 #
41075次浏览 501人参与
# 浅聊一下我实习的辛苦费 #
82319次浏览 769人参与
# 0offer是寒冬太冷还是我太菜 #
416902次浏览 4835人参与
# 铜五铁六真的存在吗? #
28905次浏览 302人参与
# 考研失败就一定是坏事吗? #
20452次浏览 215人参与
# 通信硬件人笔面经互助 #
114587次浏览 2284人参与
# 荣耀求职进展汇总 #
66313次浏览 669人参与
# Offer比较,你最看重什么? #
51291次浏览 492人参与