关注
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题时间过了才完成,不知道对不对。。
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 秋招落幕,你是He or Be #
1818次浏览 54人参与
# 应届生进小公司有什么影响吗 #
108586次浏览 1110人参与
# 重来一次,你会对开始求职的自己说 #
2088次浏览 55人参与
# 你面试体验感最差/最好的公司 #
1470次浏览 44人参与
# 一人说一个提前实习的好处 #
2370次浏览 43人参与
# 大厂VS公务员你怎么选 #
70144次浏览 650人参与
# 团建是“福利”还是是 “渡劫” #
3304次浏览 84人参与
# 工作中听到最受打击的一句话 #
1631次浏览 35人参与
# 实习没事做是福还是祸? #
6817次浏览 114人参与
# 从顶到拉给所有面过的公司评分 #
144651次浏览 518人参与
# 你小心翼翼的闯过多大的祸? #
6051次浏览 100人参与
# 今年你最想重开的一场面试是? #
1076次浏览 21人参与
# 联影求职进展汇总 #
123701次浏览 781人参与
# OPPO求职进展汇总 #
755711次浏览 5390人参与
# 互联网公司爆料 #
158435次浏览 724人参与
# 公司情报交流地 #
127342次浏览 1233人参与
# 今年形式下双非本找得到工作吗 #
266187次浏览 1541人参与
# 实习简历求拷打 #
27423次浏览 275人参与
# 在牛客分享我的求职旅程 #
176912次浏览 2689人参与
# lastday知无不言 #
101230次浏览 641人参与
