POJ1430 Binary Stirling Numbers

@(POJ)[Stirling數, 排列組合, 數形結合]

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

Solution

題意:
求斯特林數\[ \left\{ \begin{array}{} n \\ k \end{array}{} \right\} \% 2\]\[n, m \in [1, 10^9]\]
這題直接求解肯定是會T的, 因此考慮優化.

轉載自sdchr博客
侵刪

1106637-20170226115745304-241595890.png
1106637-20170226115752945-1907844741.png
代碼附上:

#include<cstdio>
#include<cctype>
using namespace std;inline int read()
{int x = 0, flag = 1;char c;while(! isdigit(c = getchar()))if(c == '-')flag *= - 1;while(isdigit(c))x = x * 10 + c - '0', c = getchar();return x * flag;
}void println(int x)
{if(x < 0)putchar('-'), x *= - 1;if(x == 0)putchar('0');int ans[1 << 5], top = 0;while(x)ans[top ++] = x % 10, x /= 10;for(; top; top --)putchar(ans[top - 1] + '0');putchar('\n');
}long long getQuantity(int x)
{long long ret = 0;for(int i = 2; i <= x; i <<= 1)ret += x / i;return ret;
}int calculate(int x, int y)
{return getQuantity(x) - getQuantity(y) - getQuantity(x - y) == 0;
}int main()
{int T = read();while(T --){int n = read(), m = read();int d = n - m, oddQua = (m + 1) / 2;println(calculate(d + oddQua - 1, oddQua - 1));}
}

转载于:https://www.cnblogs.com/ZeonfaiHo/p/6444001.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

F#文本类型

类型 说明 后缀或前缀 示例 sbyte 有符号 8 位整数 y 86y 0b00000101y byte 无符号 8 位自然数 uy 86uy 0b00000101uy int16 有符号 16 位整数 s 86s uint16 无符号 16 位自然数 us 86us int int32 有符号 32 位整数 l none。 86 86l uint uint32 无符号 32 位自然数 u 或 ul 8…

mysql约束教程,MySQL 约束

本章我们将介绍约束&#xff0c;约束放在列或表上。 它们限制了可以插入表中的数据。我们有以下限制&#xff1a;非空唯一主键外键枚举SET其他数据库也具有 CHECK 约束&#xff0c;该约束为有效数据设置了条件。 MySQL 解析了这个约束&#xff0c;但是没有强制执行。非空约束具…

ASP调用.Net dll

SET xobj Server.CreateObject("Test.Analyzer") b xobj.Do(a).net 开发Test.dll&#xff0c;要有强名称签名&#xff0c;COM可见要打开。执行以下命令gacutil /U Testregasm Test.dll /uregasm Test.dll /tlb Test.tlb gacutil /I Test.dll

php 页面加载进度条,HTML5/CSS3 网页加载进度条的实现,下载进度条等经典案例

今天给大家带来一个比较炫的进度条&#xff0c;进度条在一耗时操作上给用户一个比较好的体验&#xff0c;不会让用户觉得在盲目等待&#xff0c;对于没有进度条的长时间等待&#xff0c;用户会任务死机了&#xff0c;毫不犹豫的关掉应用&#xff1b;一般用于下载任务&#xff0…

.Net 强名称签名程序集

项目——属性——签名——选中为程序集签名——选择强名称密钥文件——新建 重新编译即可多用于作为COM组件与其他程序交互强名称签名的程序集如果被篡改&#xff0c;那么CLR在加载该程序集进行完整性验证的时候就会失败。但是强名称可以通过其他工具去除。

观后感

看过视频之后&#xff0c;我个人有以下几点观后感&#xff1a; 1、刻意练习&#xff0c;刻意就是持续地做你不会做的事&#xff1b; 2、针对性的重复练习&#xff0c;学习是没有捷径的&#xff1b; 3、不断地挑战意外&#xff0c;不让自己处于“失控”状态&#xff1b; 4、让自…

java web项目中连接mysql数据库,javaweb之eclipse工程连接mysql数据库

javaweb之eclipse工程连接mysql数据库准备工作&#xff1a;1.在mysql官网下载mysqlconnection的jar包输入网址&#xff1a;mysql.com—点击DOWNLOADS——下拉选择MySQL Community (GPL) Downloads ——选择Connector/J——下载后解压——找到mysql-connector-java-8.0.22.jar2.…

Win7的市场份额终于超过XP了,以后可以逐渐考虑放弃ie6/7了!

Win7的市场份额终于超过XP了&#xff0c;以后可以逐渐考虑放弃ie6/7了&#xff01; 开心啊&#xff0c;诸位web开发们…… 图片来源&#xff1a;http://thenextweb.com/microsoft/2012/09/01/windows-7-finally-overtakes-windows-xp-mac-os-x-overtakes-windows-vista/

写出漂亮的代码

转自&#xff1a;http://blog.csdn.net/fuyuwei2015/article/details/46552697 1&#xff09;移除你没有用到的东西&#xff08;就像上面建议的一样&#xff09;。 2&#xff09;简化必要的概念&#xff0c;避免不必要的概念。 3&#xff09;移除不必要的抽象&#xff0c;用实际…

php 垂直搜死哦,垂直搜索(Vertical Search)的详细介绍

垂直搜索是相对于通用的搜索来说的&#xff0c;垂直搜索是通用搜索引擎的一种细化&#xff0c;垂直搜索专注于某一个特定行业的搜索&#xff0c;搜索的内容更加专一化&#xff0c;比如购物的内容&#xff0c;机械产品的内容&#xff0c;服务信息的内容等&#xff0c;是某一个行…

URL编码表一览

?退格TAB换行回车空格!"#$%&()*,-./%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f%20%21%22%23%24%25%26%27%28%29%2a%2b%2c%2d%2e%2f0123456789:;<>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_%30%31%32%33%34%…

SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息

上一篇讲到的本地推送是普通的消息推送&#xff0c;本篇要讲一下带按钮动作的推送消息&#xff0c;先上个图瞅瞅&#xff1a; 继上一篇的内容进行小小的改动&#xff1a; 在didFinishLaunchingWithOptions方法内进行以下修改 123456789101112131415161718192021222324252627282…

java的input不能更改,无法将方法响应标头Content-Type更改为application / xml

尝试解决Twilio 12300错误&#xff1a;使用AWS的API网关(GET)和CloudFormation通过 aws cli 和Swagger部署Lambda(无服务器)应用程序时导致的内容类型无效 .我将集成响应主体映射模板> Content-Type设置为 application/xml 和模板#set($inputRoot $input.path(S))$inputRoo…

.Net 调用wordCOM组件转PDF

运行环境&#xff1a;office2010或office2007SaveAsPDFandXPS.exe补丁 x86x64系统环境均可。class Program{static void Main(string[] args){DOCConvertToPDF(AppDomain.CurrentDomain.BaseDirectory "/b.html", AppDomain.CurrentDomain.BaseDirectory "/aa…

树状数组基础

关于树状数组的讲解推荐《算法竞赛入门经典训练指南》 一维版本&#xff1a; 洛谷3374 分析&#xff1a;树状数组裸的模板题 1 #include<iostream>2 #include<cstdio>3 #include<cstring>4 using namespace std;5 const int maxn50000010;6 int c[maxn];7 in…

php pdo更新,php - 使用PDO和MySQL更新查询

我试图只用PDO编写更新查询&#xff0c;但我无法执行代码&#xff1f;try {$conn new PDO("mysql:host$hostdb; dbname$namedb", $userdb, $passdb);$conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8$conn->setAttribute(PDO::ATTR_…

jquery.easyui常用示例

消息框$.messager.alert("提示","法规重复标志更新成功&#xff01;");$.messager.confirm(Confirm,Are you sure you want to delete record?,function(r){ if (r){ alert(ok); } }); 翻页//初始化$(#pagination).pagination({total: actResult.Ro…

vue1升级到vue2的问题

router 不能用map方法了&#xff0c;需要改router的结构改为routers [ { // 当没有匹配路由时默认返回的首页 path:/index, component: index, authenticate:true }, { // 当没有匹配路由时默认返回的首页 path: /spa/, component: i…

python寻找字符串中的英文字符,python如何解析字符串中出现的英文人名?

这里有四个例子&#xff0c;结果来自google scholarstr1 "Jakes, William C., and Donald C. Cox. Microwave mobile communications. Wiley-IEEE Press, 1994."str2 "Schlegel, David J., Douglas P. Finkbeiner, and Marc Davis. \"Maps of dust infra…

win2003/XP删除桌面回收站

gpedit.msc 用户配置——管理模板——桌面——从桌面删除回收站——启用刷新桌面即可。