题目:http://files.cnblogs.com/files/shenben/2017-01-20problems.pdf

数据包(含解题报告):http://files.cnblogs.com/files/shenben/2017-01-20_%E6%B5%8B%E8%AF%95%E5%8C%85.zip

plane

/*
f[nowx][nowy]=sigma(f[tox][toy]);
k=0:ans=sigma(f[nowx][nowy])
以上动态转移显然
全部数据要+ 二项式定理:bilibala……
//数学弱,日后再推吧
*/
#include<cstdio>
#define O3 __attribute__((optimize("O3")))
#define IN inline
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int N=,M=,p=,inf=0x3f3f3f3f;
const int dx[]={,,,-},dy[]={,-,,};
int n,m,k,c[M][M],a[N][N],dp[N][N][M],t[M],ans[M];
bool vis[N][N];
O3 IN void dfs(int nowx,int nowy){
vis[nowx][nowy]=;
for(int d=;d<;d++){
int tox=nowx+dx[d],toy=nowy+dy[d];
if(a[nowx][nowy]>a[tox][toy]){
if(!vis[tox][toy]) dfs(tox,toy);
t[]=dp[tox][toy][]+;
for(int i=;i<=k;i++){
t[i]=dp[tox][toy][i];
for(int j=;j<=i;j++){
t[i]+=((j&)?:-)*c[i][j]*t[i-j];
t[i]%=p;
}
}
for(int i=;i<=k;i++){
dp[nowx][nowy][i]+=t[i];
dp[nowx][nowy][i]%=p;
}
}
}
}
#define name "plane"
int main(){
freopen(name".in","r",stdin);
freopen(name".out","w",stdout);
n=read();m=read();k=read();
for(int i=;i<=n+;i++) a[i][]=a[i][m+]=inf;
for(int i=;i<=m;i++) a[][i]=a[n+][i]=inf;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
a[i][j]=read();
}
}
for(int i=;i<=k;i++){
c[i][]=;
for(int j=;j<=i;j++){
c[i][j]=c[i-][j]+c[i-][j-];
c[i][j]%=p;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(!vis[i][j]) dfs(i,j);
for(int t=;t<=k;t++){
ans[t]+=dp[i][j][t];
ans[t]%=p;
}
}
}
for(int i=;i<=k;i++) if(ans[i]<) ans[i]+=p;
for(int i=;i<=k;i++) printf("%d\n",ans[i]);
fclose(stdin);fclose(stdout);
return ;
}

knapsack

/*
离线预处理:多重背包正扫一遍,反扫一遍
ans=max(f[k1][j]+f_rev[k1+2][t1-j]){0<=j<=t1}
attention:
习惯了一维的二进制拆分,二位的多重背包居然不会了~~
*/
#include<cstdio>
#include<iostream>
using namespace std;
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int N=;
int n,m,v[N],w[N],c[N],f[N][N],f_rev[N][N];
void pre_deal(){
for(int i=,tmp;i<=n;i++){
tmp=c[i];
for(int j=;j<=;j++) f[i][j]=f[i-][j];
for(int j=;tmp!=;j<<=){
j=min(j,tmp);
tmp-=j;
for(int k=;k>=j*v[i];k--){
f[i][k]=max(f[i][k],f[i][k-j*v[i]]+j*w[i]);
}
}
}
for(int i=n,tmp;i>=;i--){
tmp=c[i];
for(int j=;j<=;j++) f_rev[i][j]=f_rev[i+][j];
for(int j=;tmp!=;j<<=){
j=min(j,tmp);
tmp-=j;
for(int k=;k>=j*v[i];k--){
f_rev[i][k]=max(f_rev[i][k],f_rev[i][k-j*v[i]]+j*w[i]);
}
}
}
}
#define name "knapsack"
int main(){
freopen(name".in","r",stdin);
freopen(name".out","w",stdout);
n=read();
for(int i=;i<=n;i++) v[i]=read(),w[i]=read(),c[i]=read();
pre_deal();
m=read();
for(int k1,t1,ans;m--;){
k1=read();t1=read();ans=;
for(int j=;j<=t1;j++) ans=max(ans,f[k1][j]+f_rev[k1+][t1-j]);
printf("%d\n",ans);
}
fclose(stdin);fclose(stdout);
return ;
}

remainder

//思路很好懂,然而还要套二项式,~~
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
const ll N=,mod=;
ll n,m,ans,sum,tmp,f[N][N*N/];//f(i,j)=长为i,余数和为j
#define name "remainder"
int main(){
freopen(name".in","r",stdin);
freopen(name".out","w",stdout);
cin>>n>>m;
f[][]=;
for(int k=;k<m;k++){
for(int i=k;i>=;i--){
for(int j=k*(k-)/;j>=;j--){
f[i+][j+k]+=f[i][j];
f[i+][j+k]%=mod;
}
}
}
for(int i=;i<=m*(m-)/;i++){
if((n-i)%m) continue;
for(int j=;j<=m;j++){
tmp=(n-i)/m+j-;
tmp%=mod;
sum=;
for(int k=;k<j;k++){//C(n-tot+x-1,x-1)
sum*=tmp;
sum%=mod;
tmp--;
}
sum*=j*f[j][i]%mod;
sum%=mod;
ans+=sum;
ans%=mod;
}
}
cout<<ans;
fclose(stdin);fclose(stdout);
return ;
}

2017-01-20_dp测试的更多相关文章

  1. 【web开发 | 移动APP开发】 Web 移动开发指南(2017.01.05更新)

    版本记录 - 版本1.0 创建文章(2016.12.30) - 版本1.1 更正了hybird相关知识:增加了参考文章(2017.01.05): + Web APP更正为响应式移动站点与页面,简称响应 ...

  2. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  3. Mysql Innodb 性能参数设置 https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html

    参考原文: https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html 查看系统 ...

  4. java编程如何实现2017-01-16 22:28:26.0这样的时间数据,转换成2017:01:16:22:28:26这样的时间数据

    不多说,直接上干货! timereplace.java package zhouls.bigdata.DataFeatureSelection.util; /* * 这个程序,是用来做补充的 */ p ...

  5. AC日记——C’s problem(c) TYVJ P4746 (清北学堂2017冬令营入学测试第三题)

    P4746 C’s problem(c)   时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小C是一名数学家,由于它自制力比 ...

  6. TIOBE.2017.01最新编程语言排行榜

    Jan 2017     Jan 2016     Change     Programming Language     Ratings     Change1    1        Java   ...

  7. 2017 01 16 校内小测 ZXR专场

    我等蒟蒻爆零之后,问LincHpin大爷:“此等神题可有甚么来头?” LincHpin:“此三题皆为当年ZXR前辈所留.” 固名之,ZXR专场,233~~~ T1 勤奋的YouSiki 这个题在BZO ...

  8. ROS_Kinetic_01 在ubuntu 16.04安装ROS Kinetic 2017.01更新

    ROS_Kinetic系列学习(一),在ubuntu 16.04安装ROS Kinetic. Celebrating 9 Years of ROS! ubuntu16.04已经发布半年多了,ROS的K ...

  9. IntelliJ IDEA 2017版 SpringBoot测试类编写

    SpringBoot的测试类编写Demo 源码见 https://github.com/liushaoye/baseone.git

  10. IntelliJ IDEA 2017.01配置jdk和tomcat

    之前开发Web项目都是用myeclipse或者eclipse,最近想用IDEA这个编辑器去配置一个Web项目,因为是新手,加上对界面的操作不熟练,所以在配置的过程中遇到了一些难题.最后配置成功,并且可 ...

随机推荐

  1. python笔记6:模块

    6. 模块(一个 .py 文件称为一个模块Module) import 语句 类似 _xxx 和 __xxx 这样的 函数/变量 是非公开的(private),不应该被直接引用 函数定义: 外部不需要 ...

  2. 余秋雨的话(与OI无关)

    余秋雨的话 1.假如你想要一件东西,就放它走.它若能回来找你,就永远属于你:它若不回来,那根本就不是你的. 2. 一个人会落泪,是因为痛:一个人之所以痛,是因为在乎:一个人之所以在乎,是因为有感觉:一 ...

  3. Linux笔记:vim

    文件搜索后显示高亮,即使退出编辑高亮依然存在.使用以下几个方法: 1)指令模式下运行:nohlsearch 2)运行set nohlsearc,可永久关闭搜索高亮 3)搜索任意不存在的字符串

  4. Longest Increasing Subsequence - LeetCode

    Given an unsorted array of integers, find the length of longest increasing subsequence. For example, ...

  5. Spring Cloud学习总结(非原创)

    文章大纲 一.课程内容总结二.课程学习地址三.学习资料下载四.参考文章 一.课程内容总结   二.课程学习地址 第一天:https://www.jianshu.com/p/a086421f4bfd第二 ...

  6. C#获取程序所在的目录

    有的时候,我们需要读取程序所在目录下的一些文件,最常见的写法是直接通过".\xxx.file"之类的相对路径来获取文件.虽然这种写法大多数的时候能正确工作,但却又一个很大的隐患:程 ...

  7. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found

    使用ActiveMQ过程中,定义消息生产者: package com.sxd.jms.producer; import org.springframework.beans.factory.annota ...

  8. iOS -- iOS11新特性,如何适配iOS11

    前言 这几天抽空把WWDC的Session看了一些,总结了一些iOS11新的特性,可能对我们的App有影响,需要我们进行适配.本文作为一个总结. 本文内容包括:集成了搜索的大标题栏.横向选项卡栏.Ma ...

  9. xampp添加 django支持

    apache配置文件中添加 WSGIScriptAlias /chatbot1 /Users/css/djangoprojects/chatbot1/chatbot1/wsgi.pyWSGIPytho ...

  10. 计算机图形学OpenGL中的glLoadIdentity、glTranslatef、glRotatef原理,用法 .(转)

    单位矩阵 对角线上都是1,其余元素皆为0的矩阵. 在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵. 它是个方阵,除左上角到右下角的对角线(称为主对角线)上的元素 ...