咕了好几篇后...

我终于开始重新写了

T1:

  不会,没思路,暴搜还可能会(一开始我以为暴搜时间复杂度为$\Theta (mn ^ k)$)

  于是码出了暴搜...

  跑一遍$(4,4,5)$,然后...跑不出来!!!

  输出了一下方案数,发现有问题

  然后发现是$\Theta (k ^ {mn})$

  于是我疯了,开始打表不要脸

  $(4,4,5)$跑了1h没跑出来,放弃...然而没有这个点

考场代码:

#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
const int mod=1e9+7;
int a[6][6];
int n,m,k;
int ans[30];
void work()
{
int nans=0;
for(register int q=1;q<=n;qT1:>++)
for(register int w=1;w<=m;w++)
{
int bo=1;
for(register int e=1;e<=n;e++)
if(e!=q&&a[e][w]>=a[q][w])
{
bo=0;
break;
}
if(bo)
{
for(int e=1;e<=m;e++)
if(e!=w&&a[q][e]>=a[q][w])
{
bo=0;
break;
}
}
nans+=bo;
}
++ans[nans];
ans[nans]%=mod;
}
int cnt;
void dfs(int x,int y)
{
if(x==n&&y==m+1)
{
++cnt;
//cout<<cnt<<endl;
/*for(int q=1;q<=n;q++)
{
for(int w=1;w<=m;w++)
cout<<a[q][w]<<" ";
cout<<endl;
}
cout<<endl;*/
work();
return;
}
int res=y+1,tmp=x;
if(res==m+1&&x<n)
++tmp,res=1;
for(register int q=1;q<=k;q++)
a[x][y<

T1:

span class="pl-p">]=q,dfs(tmp,res);
}
signed main()
{
cin>>n>>m>>k;
if(n>m) n^=m,m^=n,n^=m;
if(n==4&&m==4&&k==3)
{
puts("20470320");
return 0;
}
if(n==3&&m==4&&k==4)
{
puts("13565952");
return 0;
}
if(n==4&&m==4&&k==4)
{
puts("330277355");
return 0;
}
if(n==3&&m==4&&k==5)
{
puts("243750000");
return 0;
}
if(n==3&&m==3&&k==5)
{
puts("1991250");
return 0;
}
dfs(1,1);
int nans=0;
forT1:s="pl-p">(int q=1;q<=n*m;q++)
nans=(nans+q*ans[q])%mod;
cout<<nans<<endl;
}

T2:

  仍然不会

  感觉暴力70分可以拿一下

  手玩一下

  dp可以做到$\Theta (mnq)$

考场代码:

#include<iostream>
#include<cstdio>
using namespace std;
int f[1005][1005];
int ans;
int a[1005][1005];
int main()
{
int n,m,qu;
cin>>n>>m>>qu;
for(int q=1;q<=n;q++)
{
for(int w=1;w<=m;w++)
{
char ch=getchar();
while(ch!='+'&&ch!='-') ch=getchar();
if(ch=='+')
a[q][w]=1;
else
a[q][w]=0;
}
}
for(int q=1,x,y;q<=qu;q++)
{
cin>>x>>y;
a[x][y]=0;
ans=0;
for(int w=1;w<=n;w++)
for(int e=1;e<=m;e++)
{
int res=min(f[w-1][e],f[w][e-1]);
f[w][e]=max(a[w][e],a[w][e]*(res+a[w-res][e-res]));
ans=max(ans,f[w][e]);
}
/*for(int w=1;w<=n;w++)
{
for(int e=1;e<=m;e++)
cout<<a[w][e];
cout<<endl;
}
cout<<endl;
for(int w=1;w<=n;w++)
{
for(int e=1;e<=m;e++)
cout<<f[w][e];
cout<<endl;
}
cout<<endl;*/
cout<<ans<<endl;
}
}

T3:

  不会

  n<=10枚举状态骗分

 考场代码:

#include<iostream>
#include<cstdio>
using namespace std;
#define int long long
const int mod=1e9+7;
struct road{
int e,nt,bo;
}r[400005];
int nt[200005],tot=1;
int a[200005];
int ksm(int a,int k)
{
if(!a) return 0;
int ans=1;
while(k)
{
if(k&1)
ans=(ans*a)%mod;
a=(a*a)%mod,k>>=1;
}
return ans;
}
void add(int s,int e)
{
r[++tot].e=e;
r[tot].bo=0;
r[tot].nt=nt[s];
nt[s]=tot;
}
int n,k,p,pp;
int work(int k)
{
int tmp=1;
for(int q=0;q<n;q++)
if(!(k&(1<<q)))
tmp=(tmp*(p*ksm(pp,mod-2)%mod))%mod;
else
tmp=(tmp*((pp-p)*ksm(pp,mod-2)%mod))%mod;
return tmp;
}
int bo[200005];
int v[200005];
int dfs(int k)
{
v[k]=a[k];
bo[k]=1;
for(int q=nt[k];q;q=r[q].nt)
if(!bo[r[q].e])
v[k]+=dfs(r[q].e);
return v[k];
}
int getans1(int kk)
{
for(int q=1;q<=n;q++)
if(kk&(1<<(q-1)))
{
for(int w=nt[q];w;w=r[w].nt)
r[w].bo=r[w^1].bo=1;
bo[q]=1;
}
else
bo[q]=0;
int ans=0;
for(int q=1;q<=n;q++)
if(!bo[q])
ans=(ans+ksm(dfs(q),k))%mod;
for(int q=1;q<=n;q++)
if(kk&(1<<(q-1)))
for(int w=nt[q];w;w=r[w].nt)
r[w].bo=r[w^1].bo=1;
return ans;
}
int f[105];
int fs[105];
void pre()
{
fs[0]=1;
for(int q=1;q<=n;q++)
fs[q]=fs[q-1]*(p*ksm(pp,mod-2)%mod)%mod;
fs[0]=0;
}
int sum[105];
signed main()
{
cin>>n>>k>>p>>pp;
for(int q=1;q<=n;q++)
cin>>a[q];
for(int q=1,x,y;q<n;q++)
{
cin>>x>>y;
add(x,y);
add(y,x);
}
if(n<=10)
{
int ans=0;
for(int q=0;q<(1<<n);q++)
{
//cout<<q<<" "<<work(q)<<" "<<getans1(q)<<endl;
int k=work(q);
ans=(ans+getans1(q)*k)%mod;
}
cout<<ans<<endl;
}
if(n>50&&n<100000)
{
pre();
for(int q=1;q<=n;q++)
sum[q]=sum[q-1]+a[q];
cout<<fs[1]<<endl;
f[0]=1;
for(int q=1;q<=n+1;q++)
for(int w=0;w<q;w++)
f[q]=(f[q]+f[w]*fs[q-w-1]%mod*ksm((sum[q]-sum[w+1]),k)%mod)%mod;
cout<<f[n+1]<<endl;
}
}

exam8.29的更多相关文章

  1. IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)

    首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...

  2. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  3. DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一

    关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...

  4. 【hihoCoder】1148:2月29日

    问题:http://hihocoder.com/problemset/problem/1148 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 思路: 1. 将问题转换成求两个日 ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (29) ------ 第五章 加载实体和导航属性之过滤预先加载的实体集合和修改外键关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-13  过滤预先加载的实体集合 问题 你想过滤预先加载的实体集合,另外,你想使用 ...

  6. 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox

    [源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...

  7. 搭建 Windows Server 2003 + IIS6.0 + FastCGI + PHP5.3.29 + MySQL5.5.38 + Memcached1.2.6

    一.下载相关软件: 1.VC9运行库 即VISUAL C++ 2008 自PHP5.3.0开始,PHP提供VC2008编译版,需要安装VC++ 2008的运行库. [微软官方下载] http://ww ...

  8. 将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑

    将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑 /** * 根据传入字符串 * * @param str 传入的日期字符串 形如:Oct 8, 2016 5:29 ...

  9. proxifier 3.29 key

    Proxifier 3.29 serial key :-   [Use only One ]  (Standard Edition Keys) 5EZ8G-C3WL5-B56YG-SCXM9-6QZA ...

随机推荐

  1. hadoop mapper reducer

    Local模式运行MR流程------------------------- 1.创建外部Job(mapreduce.Job),设置配置信息 2.通过jobsubmitter将job.xml + sp ...

  2. Scratch零基础起步攻略(一)

    通常,类似这样的文章开头总要阐述一大段关于编程的重要性,还有自己的专业性.权威性等等,我就都省掉了…… 简单介绍一下自己,从事计算机编程教育前前后后有近20年了,面对了不同年龄层次的学员,大部分跟着我 ...

  3. javascript之instanceof

    定义和用法 instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上. 语法: object instanceof construct ...

  4. glance

    第二篇glance— 镜像服务 一.glance介绍:              Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供 ...

  5. http://go.microsoft.com/fwlink/?linkid问题

    今天不知怎的,打开一个网页出现了http://go.microsoft.com/fwlink/?linkid=XXX 烦死了,在百度搜了下方法,什么改注册表,策略模板等不见起效.其实打开IE的设置, ...

  6. Django学习笔记(二)App创建之Model

    通过实例学习, 构建一个投票(Polls)Application, 目标结果包含两个site, 一个site用来显示投票问题以及投票结果(即将展示出来的网站), 另一个site用来管理Poll实例的增 ...

  7. vue的mescroll搜索运用以及各种填坑处理

    父组件处理: <template> <div class="wrap"> <!-- 搜索框 --> <div class="se ...

  8. 使用框架时,在web.xml中配置servlet时,拦截请求/和/*的区别。

    关于servlet的拦截设置,之前看了好多,说的都不太清除,明白. 最近明白了一些,总的来说就是保证拦截所有用户请求的同时,放行静态资源. 现整理如下: 一.我们都知道在基于Spring的Applic ...

  9. K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(上)

    ​ 背景 许多存储系统提供了创建存储卷“快照”(snapshot)的能力,以防止数据丢失.快照可以替代传统的备份系统来备份和还原主要数据和关键数据.快照能够快速备份数据(例如,创建GCE PD快照仅需 ...

  10. Luogu P2330 繁忙的都市

    Luogu P2330 繁忙的都市 裸的最小生成树. 当然,一定要注意它让你输出什么. #include<bits/stdc++.h> #define N 100010 using nam ...