C - Binary Stirling Numbers解题报告(来自网络)

第二类斯特林数(Stirling Numbers of the Second Kind)自学教程 第二类斯特林数s(n, k)表示将n个不同的物体划分为k个非空集合的方案数。例如,s(3, 2)表示将3个不同的物体划分为2个非空集合的方案数,即,共有6种方案。 阅读详情


C - Binary Stirling Numbers
Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u

Description

The Stirling number of the second kind S(n, m) stands for the number of ways to partition a set of n things into m nonempty subsets. For example, there are seven ways to split a four-element set into two parts: 

{1, 2, 3} U {4}, {1, 2, 4} U {3}, {1, 3, 4} U {2}, {2, 3, 4} U {1}

{1, 2} U {3, 4}, {1, 3} U {2, 4}, {1, 4} U {2, 3}.


There is a recurrence which allows to compute S(n, m) for all m and n. 
S(0, 0) = 1; S(n, 0) = 0 for n > 0; S(0, m) = 0 for m > 0;

S(n, m) = m S(n - 1, m) + S(n - 1, m - 1), for n, m > 0.


Your task is much "easier". Given integers n and m satisfying 1 <= m <= n, compute the parity of S(n, m), i.e. S(n, m) mod 2. 


Example 
S(4, 2) mod 2 = 1.



Task 

Write a program which for each data set: 
reads two positive integers n and m, 
computes S(n, m) mod 2, 
writes the result. 

Input

The first line of the input contains exactly one positive integer d equal to the number of data sets, 1 <= d <= 200. The data sets follow. 

Line i + 1 contains the i-th data set - exactly two integers ni and mi separated by a single space, 1 <= mi <= ni <= 10^9. 

Output

The output should consist of exactly d lines, one line for each data set. Line i, 1 <= i <= d, should contain 0 or 1, the value of S(ni, mi) mod 2.

Sample Input

1
4 2

Sample Output

1

过了这题,我很兴奋,很久都没有这种感觉了。真的很舒服,不过这题我想了很久,数论的类型,的确有些难想。
好了,不多说了,说说这题到底怎么个解法吧!此题解法都是自己一步一步推过来的,希望对大家有启发。

首先由于%2的操作,我想到了f(n,m) = s(n,m)%2,假设一个f函数。于是s(n,m) = m * s(n-1,m)+ s(n-1,m-1) ==>
f(n,m) = s(n-1,m-1) (m为偶数); f(n,m) = f(n-1,m) + f(n-1,m-1)(m为奇数)。这样就可以将m给去掉,最后就是计算f(n,m)%2即可,必须想到怎么样得到f(n,m)。

怎么得到呢?这一步是比较难想的。我用递推,推了很久都不行,因为n,m实在太大了。于是我想到了先画个图,希望通过图形来表示它们的递推关系,果真很管用,我找到了。x轴表示n方向,y轴表示m方向,那么我可以看出其实就找从(0,0)点到(n,m)点有多少条路径,就是f(n,m) 的值了。如果大家将图画出来后,然后通过上式去找,我相信会找到公式了,最后其实得到的是一个组合 求出 f(n,m) = C(n-m, (m-1)/2)。不会很难找,大家就画画吧。

简化就是求C(n,m)%2 ,就是求C(n,m)的奇偶了。怎么求呢,这又是一个难点。C(n,m) = m!/(n!*(m-n)!){这个大家都知道的},这里就是要靠数学感觉了,我直接就想到了肯定和2因子有关,于是就得到这样一个结论,如果分子2因子的个数= 分母2因子的个数,那么就为奇数;否则就为偶数.。大家多想想,如果有些疑问,给我留言,现在就不在这里多说了。

相信大家如果看来上面且明白后,这个题AC就是2分钟内了。


#include <iostream>
using namespace std;

__int64 f(__int64 x)//计算x! 2的因子数目
{
 __int64 t =0;
 while(x)
 {
  x /= 2;
  t += x;
 }
 return t;
}
int main()
{
 int cas;
 __int64 n,m;
 scanf("%d",&cas);
 while(cas)
 {
  cas --;
  cin>>n>>m;
  n -= m;
  m = (m-1)/2;
  if(f(n+m) == f(n)+ f(m))
   printf("1\n");
  else
   printf("0\n");
 }
 return 0;
}



二进制修改工具,文件对比工具,代码对比工具 Hedit亲测是一款不错的二进制修改工具,稳定性高,值得推荐。 立即下载

相关推荐

AI 生成 ECU 功能测试用例

本文分享了AI辅助汽车电子测试的实战经验。作者以某车企车身控制器(BCM)项目为例,对比了传统测试用例编写方式(需100小时)与AI辅助方式(仅3个工作日)的效率差异,实现76%的效率提升。文章详细展示了从需求文档生成测试用例的全过程,包括需求文档示例、AI提示词模板和AI生成的完整测试用例表格(涵盖正常功能、边界条件、异常场景等测试类型)。通过具体案例说明如何利用AI快速生成初稿后人工审核优化的方法,为ECU测试工程师提供了可复用的效率提升方案。

小明的博客 878

Binary Stirling Numbers(POJ-1430)

Problem Description The Stirling number of the second kind S(n, m) stands for the number of ways to partition a set of n things into m nonempty subsets. For example, there are seven ways to split a ...

Alex_McAvoy的博客 1372

Vivaldi天线HFSS建模实战:从参数化曲线到辐射优化的完整流程

本文详细介绍了Vivaldi天线在HFSS中的建模与优化全流程,涵盖参数化曲线绘制、馈电系统设计及性能验证等关键步骤。通过实战案例分享,帮助工程师掌握超宽带天线的HFSS建模技巧,提升雷达探测和通信系统设计效率。重点解析了指数渐变曲线建模、微带馈电优化等核心技术要点。

weixin_29228781的博客 273

POJ题目1430 Binary Stirling Numbers(数学,斯特林)

Binary Stirling Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1828   Accepted: 706 Description The Stirling number of the second kind S(n, m) stand

Jogging_Clown 759

别再让CPU干GPU的活了:CST Studio Suite GPU加速深度调优指南(从驱动版本到任务管理器监控)

本文深入探讨了CST Studio Suite的GPU加速深度调优方法,从NVIDIA驱动版本选择到系统级资源管理,再到实时监控与瓶颈诊断技术。通过科学的驱动优化、GPU资源管理策略和高级调优技巧,显著提升仿真效率,特别适合电磁仿真工程师和硬件加速需求的专业用户。

weixin_28740299的博客 163

告别功能限制:Win11家庭版无损升级专业版全攻略

本文详细介绍了如何将Win11家庭版无损升级到专业版的全过程,包括升级前的准备、两种官方升级方案(Microsoft Store购买和使用产品密钥)以及命令行升级方法。升级后可解锁远程桌面、组策略编辑器和BitLocker加密等高级功能,适合需要更多商业功能的用户。

weixin_32822843的博客 697

1430 Binary Stirling Numbers 判断第二类斯特林数的奇偶性 对于C(n,k),若n&k == k 则c(n,k)为奇数,否则为偶数。

Binary Stirling NumbersTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 1106 Accepted: 379DescriptionThe Stirling number of the second kind S(n, m) stands for the number of ways to partition a set of n things into m nonempty subsets. For example,

kongming_acm的专栏 982

大厂校招:星宸科技嵌入式面试及参考答案(5万字长文)

当一个新的硬件设备被插入系统时,内核会发送一个设备事件通知 udev,udev 会根据设备的属性和规则,为该设备创建一个合适的设备文件。通过去除不必要的驱动程序、禁用不需要的功能、选择合适的内核配置选项、优化内核编译选项和定制内核模块等方法,可以减小内核的大小和复杂性,提高系统的性能和稳定性。上半部通常是在中断关闭的情况下执行的,以确保中断处理的原子性。处理碎片化内存是内存管理中的一个重要问题,可以采用内存压缩、内存池管理、伙伴系统、首次适应算法和最佳适应算法等方法来减少内存碎片的产生,提高内存的利用率。

大模型大数据攻城狮的专栏 2925

转(acm数学)

 view plaincopy to clipboardprint?·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150 从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起

neoxuhaotian的专栏 4489

YOLOv11【第二章:核心模块进阶篇·第28节】DynamicHead动态检测头设计!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1万+

基于YOLOv5s的RK3588多线程部署16FPS暴涨到120FPS 轻量化深度学习部署实战教程(包括性能优化与加速)37

本文介绍了如何在RK3588平台上利用线程池优化YOLOv5模型的推理性能。RK3588内置3个NPU核心,支持多核并行处理。作者设计了一个线程池架构:1个线程负责数据读取,10个线程处理NPU运算,1个线程输出结果。该架构包含任务队列、线程管理和工作线程三个核心组件,通过合理设置线程数、任务队列大小等参数确保性能稳定。文章提供了详细的C++实现代码,包括线程池初始化、任务提交、结果获取等功能模块,并讨论了多线程同步和内存管理的关键技术要点。该方案可显著提升深度学习模型在嵌入式设备上的部署效率。

FJN110的博客 9225

【POJ1430】Binary Stirling Numbers 【斯特林数】

题目传送门 题意:判断第二类斯特林数的奇偶性。 我自己先打了个表,发现结果挺有意思的,是个分形。 然而还是不会做,去膜了膜题解,发现看不懂,只好手推出来了一个和题解一样的公式。 题解:我们都知道S[i][j]=S[i−1][j−1]+j∗S[i−1][j]S[i][j]=S[i−1][j−1]+j∗S[i−1][j] 于是在mod2的意义下,当j为偶...

weixin_30877493的博客 260

74、刀具磨损监测与寿命预测分析

本文综述了刀具磨损监测与寿命预测的研究现状,分析了力信号、功率信号、振动信号和声发射信号在刀具状态监测中的应用及其优缺点。介绍了当前常用的刀具寿命模型及故障诊断流程,并总结了基于不同信号的监测方法。文章指出,尽管已有多种方法在理论上取得进展,但在实际应用中仍面临挑战。未来研究方向包括采用更先进的神经网络、深入探索多信号融合技术以及有效利用工业大数据,以提升刀具状态识别的准确性与可靠性。

lstm7chronicler的博客 275

The second kind of Stirling number(连载)

又要开新坑了,这可是个庞大工程。不定期更新!!! Definition: Stirling number of the second kind is the number of ways to partition a set of n objects into k non-empty subsets and is denoted by S(n,k)S(n,k) S(n,k)=S(n−1,k−1)

rsy56640的博客 839

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

斯特林数 [Stirling Numbers]

斯特林数 [Stirling Numbers] 第二类斯特林数:f(n,k)表示划分n个数为k个非空子集的划分方式的个数 例如:n = 4、k = 2 有 {1,2,3}U{4}、{1,2,4}U{3}、{1,3,4}U{2}、{2,3,4}U{1} {1,2}U{3,4}、{1,3}U{2,4}、{1,4}U{2,3} 因此,f(4,2) = 7 对于k = 0,易知f(n, 0)

gold_bridge 1774

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

斯特林数(Stirling number)

在组合数学,Stirling 数可指两类数,第一类Stirling 数和第二类 Stirling 数,都是由18世纪数学家 James Stirling 提出的。 Stirling 数有两种,第一类和第二类Stirling 数 第一类斯特林数: 形如$\left[\begin{matrix}n\\m\end{matrix}\right]$,也写作 $s(n,k)$ 组合意义: $s(n,...

weixin_30363817的博客 775

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

BinaryEditor:用ListView实现编辑二进制文件

BinaryEditor下载地址:【网通】点击这里来下载吧,带源程序哦。 【电信、网通】点击此处下载源程序 【下载说明】 1、单击上面这个地址,打开下载页面。 2、点普通下载--等待30秒--点“下载”按钮--保存 闲来无事,写了一个用ListView实现编辑二进制文件的程序,并且支持多标签浏览,也算是练习TabControl了.   输入时需要用到数字键盘的键

apk508 2030

【POJ1430】Binary Stirling Numbers(第二类斯特林数,组合数)

求 {nm} mod 2\begin{Bmatrix}n\\m\end{Bmatrix}\bmod 2{nm​}mod2 的值。 由第二类斯特林数的递推公式: {nm}={n−1m−1}+m{nm} \begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m\begin{Bmatrix}n\\m\end{Bmatrix} {nm​}={n−1m−1​}+m{nm​} 可知: {nm}≡{{n−1m−1}if m m

ez_lcw的博客 364

【C语言做题系列】Binary Numbers

Given a positive integer n, find the positions of all 1’s in its binary representation. The position of the least significant bit is 0. Example The positions of 1’s in the binary representation of 13 ...

王保保的小博客 682

POJ 1430 Binary Stirling Numbers (排列组合)

题目链接 对于第二类斯特林数S(n,m) = S(n-1,m-1) + m*S(n-1,m),求S(n,m)的奇偶性。 学习了大佬的博客…… 在模2的意义下,如果m为偶数,则S(n,m)=S(n-1,m-1);如果m为奇数,则S(n,m)=S(n-1,m-1)+S(n-1,m)。 考虑这种关系的另一种表示:初始时在(0,0)处,对于状态(x,y),如果x为奇数,可以转移到(x+1,y+1)...

NPU_SXY的博客 461

poj 1430 Binary Stirling Numbers 斯特灵数结论

Language:Default Binary Stirling Numbers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1914 Accepted: 756 Description The Stirling number of the second kind S(n, m) stands for the number of ways

abclydabclyd的博客 975

HDU 1390 Binary Numbers

Binary Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1778    Accepted Submission(s): 1121 Problem Description Given a posit

闲暇时光写代码 790

【C语言做题系列】A Simple Task

Given a positive integer n and the odd integer o and the nonnegative integer p such that n = o2^p. Example For n = 24, o = 3 and p = 3. Task Write a program which for each data set: reads a positive i...

王保保的小博客 540

HDU1339_A Simple Task【水题】

题目大意:给你一个数N,输出满足N = o*2^p(o为奇数,p为非负数)的o和p值 思路:除以2算出2的幂p,剩下的就是奇数o

程序员充电站(itcharge) 1440

POJ 1385-Binary Stirling Numbers(判断第二类斯特林数的奇偶性)

Binary Stirling Numbers Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1430 Appoint description:  System Crawler  (2015-04-22) D

Rocky0429 1935

POJ 1430 Binary Stirling Numbers (斯特林数)

题意:给你n,k,求S(n,k) mod 2。 题解:没什么好说的,知道公式就好解决。C(z,w) = z! / [(w!) * (z-w)!],要判断奇偶性只需要统计一下分子分母的所含的因子2的个数。 #include #define lint __int64 lint getTwo ( lint x ) { lint cnt = 0, bit = 2; whi

3121
上一篇: B - 反正切函数的应用解题报告(贺奕凯)
下一篇: D - Magic Bracelet解题报告(来自网络)
CSUST_ACM
博客等级 码龄15年 42粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值