SGU 221.Big Bishops(DP)
题意:
给一个n*n(n<=50)的棋盘,放上k个主教(斜走),求能放置的种类总数。
Solution :
同SGU 220,加个高精度就好了。
code
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std; string f[][][], ans;
int tem[];
int n, k, tol; string add (string a, string b) {
string c;
int s[] = {};
for (int i = ; i < a.size(); i++) s[i] += a[i] - '';
for (int i = ; i < b.size(); i++) s[i] += b[i] - '';
int len = max (a.size(), b.size() );
for (int i = ; i < len; ++i) {
if (s[i] >= ) {
s[i + ] += s[i] / , s[i] = s[i] % ;
if (i + == len) len++;
}
c += '' + s[i];
}
return c;
}
string operator * (string a, int k) {
string c;
int len = a.size(), x = ;
for (int i = , tem; i < len; ++i) {
tem = (a[i] - '') * k + x;
c += '' + tem % ;
x = tem / ;
}
for (; x; x /= ) c += '' + x % ;
return c;
}
string operator * (string a, string b) {
string c;
int s[] = {};
for (int i = ; i < a.size(); ++i)
for (int j = ; j < b.size(); ++j)
s[i + j] += (a[i] - '') * (b[j] - '');
int len = a.size() + b.size() - ;
for (int i = ; i < len; ++i) {
if (s[i] >= ) {
s[i + ] += s[i] / , s[i] %= ;
if (i + == len) len++;
}
c += '' + s[i];
}
return c;
}
void make (int x) {
tol = ;
for (int t = x; t <= n; t += ) {
tem[++tol] = t;
if (t != n) tem[++tol] = t;
}
f[x - ][][] = "";
string t;
for (int i = ; i <= tol; i++)
for (int j = ; j <= k; j++)
if (tem[i] >= j) {
if (j > ) t = f[x - ][i - ][j - ] * (tem[i] - j + );
else t = "";
f[x - ][i][j] = add (f[x - ][i - ][j] , t );
}
}
int main() {
ios::sync_with_stdio ();
cin >> n >> k;
make ();
make ();
ans = "";
for (int i = ; i <= k; i++)
ans = add (ans , f[][tol][i] * f[][ * n - - tol][k - i]);
while (* (ans.end() - ) == '' && ans.size() > ) ans.erase (ans.end() - );
reverse (ans.begin(), ans.end() );
cout << ans ;
}
SGU 221.Big Bishops(DP)的更多相关文章
- SGU 220.Little Bishops(DP)
题意: 给一个n*n(n<=10)的棋盘,放上k个主教(斜走),求能放置的种类总数. Solution: 一眼看上去感觉是状压DP,发现状态太多,没办法存下来... 下面是一个十分巧妙的处理: ...
- SGU 390-Tickets(数位dp)
题意:有标号l-r的票,要给路人发,当给的票的编号的各数位的总和(可能一个人多张票)不小k时,才开始发给下一个人,求能发多少人. 分析:这个题挺难想的,参考了一下题解,dp[i][sum][left] ...
- SGU 199 Beautiful People(DP+二分)
时间限制:0.25s 空间限制:4M 题意: 有n个人,每个人有两个能力值,只有一个人的两个能力都小于另一个的能力值,这两个人才能共存,求能同时共存的最大人数. Solution: 显然这是一个两个关 ...
- SGU 134.Centroid( 树形dp )
一道入门树dp, 求一棵树的重心...我是有多无聊去写这种题...傻X题写了也没啥卵用以后还是少写好.. ----------------------------------------------- ...
- sgu 131 状压DP
棋盘覆盖(二) 时间限制:1000 ms | 内存限制:65535 KB 描述 The banquet hall of Computer Scientists' Palace has a ...
- [LeetCode] 221. 最大正方形(DP)
题目 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 ...
- SGU 144. Meeting 概率dp 几何概率分布 难度:0
144. Meeting time limit per test: 0.25 sec. memory limit per test: 4096 KB Two of the three members ...
- SGU 乱乱开
本解题报告 乱抄,乱写,随性随心,不喜多喷! SGU 142: 思路:一个string的字串不会超过2^20个,我们枚举出来就好了. 我出错点:数组RE #include<stdio.h> ...
- HDU-4507-吉哥系列故事-恨7不成妻
题目描述 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 ...
随机推荐
- IP定位 C#
IP定位 已经不是什么新的技术,但是在做项目中却会常常用到.找网上找了许久,也做了许多的实验,觉得QQwry.dat,很很好用的,作者也提供了开发的源码和大家分享. 在这里感谢作者.我在项目中也用到了 ...
- 【转】Unity 相关经典博客资源总结(持续更新)
原文:http://blog.csdn.net/prothi/article/details/20123319 就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享. 好的论坛: ...
- HDOJ/HDU 2550 百步穿杨(注意排序)
Problem Description 时维九月,序属三秋,辽军大举进攻MCA山,战场上两军正交锋.辽军统帅是名噪一时的耶律-James,而MCA方则是派出了传统武将中草药123.双方经过协商,约定在 ...
- JSP路径的问题
JSP因为是客户端使用的路径,所以完全可以使用全路径形式 那么在JSP里面使用路径的方式有两种,超链接或者form 当我们在MyEclipse中新建JSP时,可以发现有下面 <%@ page l ...
- C#中的线程(下)-多线程
1. 单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它 ...
- 用ISE14.7引用功能强大的UltraEdit编写Verilog
对于FPGA初学者来说,使用FPGA编译软件所带的编辑器写代码已经完全够用,但随着工程的不断增大,ISE自带的编辑器用起来显得有点力不从心,所以本文中我将为大家分享一款功能强大的编辑软件UltraEd ...
- 新站上线啦,Html5Think,H5优秀资源的收集、学习、分享和交流
最近闲来做了个H5资源站,刚刚有点资源,可以访问交流下. 栏目: H5网站模板 H5动画特效 H5资源工具 H5学习资料 致力于H5的学习,通过各个H5优秀案例的学习,逐步完善自己的H5体系,有朝一日 ...
- (配置)CKEditor+CKFinder+php上传配置,根据年月命名创建文件夹来存放
CKEditor+CKFinder+php上传配置 新版本的CKEditor只提供了基本的文本编辑功能,上传模块由另一个组件CKFinder.这里主要记录CKFinder上传的一些参数配置,能够成功上 ...
- jQuery Animation实现CSS3动画
jQuery Animation的工作原理是通过将元素的CSS样式从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创建动画效果.只有数字值可创建动画(比如 "margin:3 ...
- [ACM] HDU 5025 Saving Tang Monk (状态压缩,BFS)
Saving Tang Monk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...