种树 & 乱搞
题意:
在一个(n+1)*(m+1)的网格点上种k棵树,树必须成一条直线,相邻两棵树距离不少于D,求方案数.
SOL:
这题吧...巨坑无比,本来我的思路是枚举每一个从(0,0)到(i,j)的矩形,然后在对角线上容斥....这他妈太麻烦了吧...
首先我们要避免重复,其次我们要方便统计,然后就滚去想啊...横竖不说了吧...对于对角线我们枚举(0,0)--->(i,j) 的矩阵,并且0,0和(i,j)均中上树,那么剩下的树只可能在对角线上,然后组合数乱搞----->真乱啊...都搞不出来...++--真是让人心累...
Code:
贴一发政委巨巨的代码...看起来短...自己打真的是乱得一笔啊...
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
const int mo=1000000000;
int k,n,m,d;
int C[1510][1510];
int gcd(int i,int j) { return j?gcd(j,i%j):i;}
int main()
{
scanf("%d%d%d%d",&k,&n,&m,&d);
if (k==1) { printf("%d\n",1LL*(n+1)*(m+1)%mo);return 1;}
C[0][0]=1;
for (int i=1;i<=1500;i++)
for (int j=0;j<=1500;j++)
C[i][j]=(j)?(C[i-1][j-1]+C[i-1][j])%mo:1;
int ans=0;
if (m+1-(k-1)*(d-1)>=0) ans=(ans+1LL*(n+1)*C[m+1-(k-1)*(d-1)][k])%mo;
if (n+1-(k-1)*(d-1)>=0) ans=(ans+1LL*(m+1)*C[n+1-(k-1)*(d-1)][k])%mo;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
int g=gcd(i,j);
int p=sqrt(1LL*(d*d-1)*g*g/(i*i+j*j))+1;
if (g-1-(k-1)*(p-1)<0) continue;
// printf("%d %d %d %d\n",i,j,g,p);
ans=(ans+2LL*(n+1-i)*(m+1-j)*C[g-1-(k-1)*(p-1)][k-2])%mo;
}
printf("%d\n",ans);
return 0;
}
种树 & 乱搞的更多相关文章
- URAL 1827 Indigenous Wars(排序、乱搞)
题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...
- 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
4692: Beautiful Spacing Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 46 Solved: 21[Submit][Statu ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 159[Submit][Status][ ...
- 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 70 Solved: 24[Submit][Status][D ...
- SCOI 2013 密码 & 乱搞
题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...
- URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)
搞死人的题目,,, 就是在n*n的方格中找路径长度为L的回路. 开始的思路值适合n为偶数的情况,而忽视了奇数的case,所以wa了一次. 然后找奇数case的策略,代码从70多行变成了100多,然后改 ...
- 【BZOJ1011】【HNOI2008】遥远的行星(乱搞)
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 1444 Solved ...
随机推荐
- AngularJS模型 ng-model 指令
ng-model 指令用于绑定应用程序数据到 HTML 控制器(input, select, textarea)的值. ng-model 指令可以将输入域的值与 AngularJS 创建的变量绑定.例 ...
- json_encode() 和 json_decode()
php json_decode返回数据js的处理,json_decode后,返回到前台的数据如:encode_str => {"green":10,"size&qu ...
- Thinkphp3.2中的模板继承
1:模板继承: 是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比 类的继承一样,模板也可以定义一个基础模板( ...
- JS window.open()属性
一. Window 对象 Window 对象是 JavaScript 层级中的顶层对象. Window 对象代表一个浏览器窗口或一个框架. Window 对象会在 <body> 或 < ...
- IIS网站发布若干问题
1.Win7 64位 IIS未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项 未能加载文件或程序集"System.Data.SQLite ...
- jQueryEasyUi验证
多重验证: { field : 'startPort', title : "起始端口", editor: "text", width : 50, edi ...
- jQuery - 2.jQuery选择器
1.id 选择器 2.标签选择器 3.类选择器 4.复合选择器 5.层次选择器 JQuery的迭代 JQuery选择器 JQuery选择器用于查找满足条件的元素,比如可以用$("#控件I ...
- c++11中的static
超赞的线程安全的初始化 static plsa::PLSAModel& model() { static plsa::PLSAModel _model = ([&]() { plsa: ...
- CSS中设置DIV垂直居中的N种方法 兼容IE浏览器
在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中 ...
- OCJP(1Z0-851) 模拟题分析(九)over
Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...