BZOJ 4806 - 4809 象棋四题
4806: 炮
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 103 Solved: 72
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
Source
#include<cstdio>
#define N 105
#define P 999983
int n,m;long long f[N][N][N],ans;
inline long long C(int a,int b){
return b==?a:(1LL*a*(a-)/)%P;
}
main(){
scanf("%d%d",&n,&m),f[][m][]=;
for(int i=;i<n;++i)
for(int j=;j<=m;++j)
for(int k=;k<=m;++k)
if(f[i][j][k]){
(f[i+][j][k]+=f[i][j][k])%=P;
if(j>)(f[i+][j-][k+]+=f[i][j][k]*C(j,))%=P;
if(j>)(f[i+][j-][k+]+=f[i][j][k]*C(j,))%=P;
if(j>)(f[i+][j-][k]+=f[i][j][k]*C(j,)%P*C(k,))%=P;
if(k>)(f[i+][j][k-]+=f[i][j][k]*C(k,))%=P;
if(k>)(f[i+][j][k-]+=f[i][j][k]*C(k,))%=P;
}
for(int i=;i<=m;++i)
for(int j=;j<=m;++j)
ans=(ans+f[n][i][j])%P;
printf("%lld\n",ans);
}
4807: 車
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 126 Solved: 45
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
Source
#include<cstdio>
#define N 1000005
int n,m,t,pri[N],que[N],cnt[N],ans[],tot=,mor;
void calc(int lim,int flg){
for(int i=;i<=lim;++i)
for(int num=i;num!=;)
cnt[pri[num]]+=flg,num/=pri[num];
}
main(){
scanf("%d%d",&n,&m);
if(n<m)n^=m^=n^=m;
for(int i=;i<=n;++i){
if(!pri[i])que[++t]=pri[i]=i;
for(int j=;j<=t&&i*que[j]<=n;++j){
pri[que[j]*i]=que[j];
if(!(i%que[j]))break;
}
}
ans[]=;
calc(n,+);
calc(m,-);
calc(n-m,-);
for(int i=;i<=t;++i)
for(int j=;j<=cnt[que[i]];++j){tot+=;
for(int k=;k<=tot;++k)ans[k]*=que[i];
for(int k=;k<=tot;++k)ans[k+]+=ans[k]/,ans[k]%=;
while(tot&&!ans[tot])--tot;if(tot>)tot=;
}
while(tot&&!ans[tot])--tot;
for(int i=tot;i;--i)putchar(''+ans[i]);
}
4808: 马
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 106 Solved: 43
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
0 1 0
0 1 0
Sample Output
HINT
Source
#include <cstdio> template <class T>
inline T min(const T &a, const T &b)
{
return a < b ? a : b;
} inline int nextInt(void)
{
int r = ;
int f = ;
int c = getchar(); for (; c < ; c = getchar())
if (c == '-')f = ; for (; c > ; c = getchar())
r = r * + c - ; return f ? -r : r;
} const int mxn = ;
const int mxm = ;
const int inf = ; int s;
int t;
int tt;
int hd[mxn];
int nt[mxm];
int to[mxm];
int fl[mxm]; inline void add(int x, int y)
{
nt[tt] = hd[x], to[tt] = y, fl[tt] = , hd[x] = tt++;
nt[tt] = hd[y], to[tt] = x, fl[tt] = , hd[y] = tt++;
} int dep[mxn];
int que[mxn];
int cur[mxn]; inline bool bfs(void)
{
for (int i = s; i <= t; ++i)
dep[i] = ; int l = , r = ;
dep[s] = ;
que[] = s; while (l != r)
{
int u = que[l++], v; for (int i = hd[u]; ~i; i = nt[i])
if (v = to[i], !dep[v] && fl[i])
dep[que[r++] = v] = dep[u] + ;
} return dep[t];
} int dfs(int u, int f)
{
if (!f || u == t)
return f; int used = , flow, v; for (int &i = cur[u]; ~i; i = nt[i])
if (v = to[i], fl[i] && dep[v] == dep[u] + )
{
flow = dfs(v, min(f - used, fl[i])); used += flow;
fl[i] -= flow;
fl[i^] += flow; if (used == f)
return used;
} if (!used)
dep[u] = ; return used;
} inline int flow(void)
{
int ret = , tmp; while (bfs())
{
for (int i = s; i <= t; ++i)
cur[i] = hd[i]; while (tmp = dfs(s, inf))
ret += tmp;
} return ret;
} int n, m, id[][]; const int mov[][] =
{
{+, +},
{+, -},
{-, +},
{-, -},
{+, +},
{+, -},
{-, +},
{-, -}
}; signed main(void)
{
n = nextInt();
m = nextInt(); for (int i = ; i <= n; ++i)
for (int j = ; j <= m; ++j)
if (!nextInt())id[i][j] = ++t; ++t; for (int i = s; i <= t; ++i)
hd[i] = -; for (int i = ; i <= n; ++i)
for (int j = ; j <= m; ++j)
if (id[i][j])
{
if ((i ^ j) & )
add(s, id[i][j]);
else
add(id[i][j], t);
} for (int i = ; i <= n; ++i)
for (int j = ; j <= m; ++j)
if (((i ^ j) & ) && id[i][j])
for (int k = ; k < ; ++k)
{
int x = i + mov[k][];
int y = j + mov[k][]; if (x < || x > n)continue;
if (y < || y > m)continue; if (!id[x][y])continue; add(id[i][j], id[x][y]);
} printf("%d\n", t - - flow());
}
4809: 皇后
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 123 Solved: 62
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 0 1 1
1 1 1 0
0 1 1 1
1 1 0 1
Sample Output
HINT
Source
#include <cstdio> inline int nextInt(void)
{
int r = ;
int c = getchar(); for (; c < ; c = getchar());
for (; c > ; c = getchar())
r = r * + c - ; return r;
} const int mxn = ; typedef unsigned long long lnt; int n, ans, map[mxn][mxn]; void search(int x, lnt a, lnt b, lnt c)
{
if (x == n)++ans;
else
{
lnt d = a | b | c; for (register int y = ; y < n; ++y)
if (!map[x][y] && !((d >> y) & ))
search(x + ,
(a | (1ULL << y)),
(b | (1ULL << y)) >> ,
(c | (1ULL << y)) << );
}
} signed main(void)
{
n = nextInt(); for (int i = ; i < n; ++i)
for (int j = ; j < n; ++j)
map[i][j] = nextInt(); search(, , , ); printf("%d\n", ans);
}
@Author: YouSiki
BZOJ 4806 - 4809 象棋四题的更多相关文章
- Java-集合(没做出来)第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。 例如: List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Learn”); //此时list 为Hello World Learn reverseL
没做出来 第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列. 例如: List list = new ArrayList(); list.a ...
- 经典算法题每日演练——第十四题 Prim算法
原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...
- NOIP2010-普及组复赛-第四题-三国游戏
题目描述 Description 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不 ...
- CTF---Web入门第十四题 忘记密码了
忘记密码了分值:20 来源: Justatest 难度:中 参与人数:7706人 Get Flag:2232人 答题人数:2386人 解题通过率:94% 找回密码 格式:SimCTF{ } 解题链接: ...
- hiho_offer收割18_题解报告_差第四题
I.求逆元欧几里得方法 II.模拟细心+耐心 *本人感悟:自己的错误在于:对于这道模拟题没有耐心静下来一字一字看题,一行一行调错,一步一步调试,我要引以为戒. III.dpf[i][j][k]=max ...
- bzoj 3208 花神的秒题计划I
bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...
- 第六届蓝桥杯java b组第四题
第四题 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位. 下面的方法,可以求出循环 ...
- 网络流二十四题,题解summary
没有全部写完,有几题以后再补吧. 第一题:最简单的:飞行员配对方案问题 讲讲这个题目为什么可以用网络流? 因为这个题目是要进行两两之间的匹配,这个就可以想到用二分图匹配,二分图匹配又可以用网络流写. ...
- bzoj usaco 金组水题题解(2.5)
bzoj 2197: [Usaco2011 Mar]Tree Decoration 树形dp..f[i]表示处理完以i为根的子树的最小时间. 因为一个点上可以挂无数个,所以在点i上挂东西的单位花费就是 ...
随机推荐
- asp.net网站,在没有项目源码情况下的扩展
如果在没有源码的情况下,要扩展asp.net网站,可以自己新增一个类库项目,在里面添加需要扩展的类,代码如下: using System; using System.Collections.Gener ...
- ASPCMS_判断语句if标签的使用
这几天在仿个企业站,又用到了ASPCMS.这个CMS系统支持响应式模板——视访问设备而使用不同的模板,这样PC.手机都能兼顾. ▼官方给出的说明: 1.满足条件则显示 {if:条件语句} 显示内容 { ...
- git 配置别名
对于常用的git的命令,可以通过配置别名的方式,提高工作效率. $ git config --global alias.co checkout //执行git co 相当于git checkout $ ...
- linux-IO重定向-文本流重定向
输出重定向的追加和覆盖 标准输出就这两种: 覆盖和追加 >> 是重定向操作符 1 是 命令的文件描述符 重定向操作符合文件描述符之间不能存在空白符 否则1会被当做是文件被读取 将正确和错误 ...
- python-编码-15
ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字节 中:00000000 00000 ...
- 移动app rem
(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ...
- Eddy's mistakes HDU
链接 [http://acm.hdu.edu.cn/showproblem.php?pid=1161] 题意 把字符串中大写字母变为小写 . 分析 主要是含有空格的字符串如何读入,用getline(c ...
- 第三个Sprint冲刺第6天
成员:罗凯旋.罗林杰.吴伟锋.黎文衷
- 第三个spring冲刺总结(附团队贡献分)
基于调查需求下完成的四则运算,我们完成了主要的3大功能. 第一,普通的填空题运算,这个是传统的运算练习方式,团队都认为这个选项是必要的,好的传统要留下来,在个人经历中,填空练习是一个不错的选择. 第二 ...
- SpringMvc配置扫包之后,访问路径404问题解决
场景: 1. 配置了Spring和SpringMvc, Spring管理非Controller类的Bean, SpringMvc管理涉及的Controller类 2. web.xml已经配置了Spri ...