关注
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题时间过了才完成,不知道对不对。。
查看原帖
点赞 评论
牛客热帖
更多
正在热议
更多
# mt对你说过最有启发的一句话 #
23719次浏览 304人参与
# 秋招特别不鸣谢 #
10952次浏览 146人参与
# 秋招被挂春招仍然能投的公司 #
3969次浏览 56人参与
# 工作中遇到的歹人 #
20154次浏览 253人参与
# 摸鱼被leader发现了怎么办 #
90294次浏览 596人参与
# 今年秋招你收到了多少封邮件? #
14756次浏览 185人参与
# 什么是优秀的实习经历 #
5052次浏览 166人参与
# 选实习,你更看重哪方面? #
8824次浏览 176人参与
# 工作后,你落下了哪些病根 #
9054次浏览 163人参与
# 职场捅娄子大赛 #
436385次浏览 4175人参与
# 实习简历求拷打 #
924次浏览 25人参与
# 被上班搭子“传染”了哪些习惯 #
3675次浏览 78人参与
# 机械/制造每日一题 #
79827次浏览 1407人参与
# 2025,我想...... #
80400次浏览 640人参与
# 携程求职进展汇总 #
835630次浏览 5381人参与
# 工作后明白的那些道理 #
43434次浏览 667人参与
# 打工人的精神状态 #
122591次浏览 1424人参与
# 考研失败就一定是坏事吗? #
167038次浏览 1233人参与
# 找工作有哪些冷知识 #
202973次浏览 2592人参与
# 毕业论文进行时 #
19971次浏览 122人参与