【hdu 6321】Dynamic Graph Matching
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
DP
设f[i][j]表示前i个操作,已经匹配了的点的状态集合为j的方案数
对于+操作
有两种情况。
1.这条边作为匹配的边
2.这条边没有作为匹配边
f[i][j] = f[i-1][j-(u,v)] + f[i-1][j]
作为匹配边,转化一下就是这条边的两个点连上了。也即被匹配了。
对于-操作
考虑前i-1个操作。
会发现+操作的先后顺序不影响前i-1个操作之后的结果。
因此我们干脆就认为第i-1个操作就是和- u,v对应的+ u,v就好了
因此我们只需将$f[i-1][j]-f[i-1][j-(u,v)]$的值赋值给f[i][j]即可。
最后统计匹配数的方案就好了
j这个状态有几个匹配要预处理出来。
【代码】
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define inf 2099999999
#define mod 1000000007
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rep1(i,a,b) for(int i=a;i>=b;i--)
const int M = 1024;
int T,n,m;
int f[M+10],pre[12];
int cnt[6],pre2[M+10];
char s[5];
int main()
{
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
scanf("%d",&T);
pre[0] = 1;
rep(i,1,10) pre[i] = pre[i-1]*2;
for (int i = 0;i < M;i++){
int x = i,cur = 0;
while (x>0){
cur+=(x%2);
x/=2;
}
if (cur%2==0) pre2[i] = cur/2;
}
while(T--){
scanf("%d%d",&n,&m);
memset(f,0,sizeof f);
f[0] = 1;
for (int i = 1;i <= m;i++){
int x,y;
scanf("%s",s);scanf("%d%d",&x,&y);
x--;y--;
if (s[0]=='+'){
for (int j = pre[n]-1;j >=0;j--)
if (((j&pre[x])>0) && ((j&pre[y])>0) ){
int jj = j ^ pre[x];
jj = jj ^ pre[y];
f[j] = f[j] + f[jj];
if (f[j]>mod) f[j]-=mod;
}
}else{
for (int j = pre[n]-1;j >= 0;j--){
if (((j&pre[x])>0) && ((j&pre[y])>0)){
int jj = j^pre[x];
jj = jj^pre[y];
f[j] = f[j]-f[jj]+mod;
if (f[j]>mod) f[j]-=mod;
}
}
}
memset(cnt,0,sizeof cnt);
for (int j = 0;j < pre[n];j++)
cnt[pre2[j]] = (cnt[pre2[j]] + f[j])%mod;
for (int i = 1;i <= n/2;i++) {
if (i!=1) putchar(' ');printf("%d",cnt[i]);
}
puts("");
}
}
return 0;
}
【hdu 6321】Dynamic Graph Matching的更多相关文章
- 【Sichuan 2017D】Dynamic Graph
题意 300个点的无环图,开始都是白色,每次改变某个节点的颜色(黑/白),问有多少对白点之间存在只有白点的路径. 题解 类似floyd,求出两点之间的路径条数.然后白到黑就删去对应路径,黑到白就增加对 ...
- HDU 6321 Dynamic Graph Matching
HDU 6321 Dynamic Graph Matching (状压DP) Problem C. Dynamic Graph Matching Time Limit: 8000/4000 MS (J ...
- HDU6321 Dynamic Graph Matching【状压DP 子集枚举】
HDU6321 Dynamic Graph Matching 题意: 给出\(N\)个点,一开始没有边,然后有\(M\)次操作,每次操作加一条无向边或者删一条已经存在的边,问每次操作后图中恰好匹配\( ...
- hdu多校第3场C. Dynamic Graph Matching
Problem C. Dynamic Graph Matching Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Tot ...
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
随机推荐
- File System Design Case Studies
SRC=http://www.cs.rutgers.edu/~pxk/416/notes/13-fs-studies.html Paul Krzyzanowski April 24, 2014 Int ...
- PatentTips - Controlling TSC offsets for multiple cores and threads
BACKGROUND Many processors include a time stamp count (TSC) counter which is typically implemented a ...
- C#中的IEnumerable<T>知识点
1.扩展IEnumerable<T>的方法 使继承了IEnumeralbe<T>的接口有了MyS方法 static class MySum { ...
- [Beginning SharePoint Designer 2010]列表和库&内部内容类型
本章概要: 1.SPS如何组织管理数据 2.如何创建列表和文档库 3.如何使用视图来过滤分类,分组列表和库 4.如何创建内容类型来应用一个定义好的结构到数据和文档中
- android 分享到QQ空间的全部操作
http://wiki.open.qq.com/wiki/mobile/SDK下载 <!-- QZone分享必须加上以下两个activity --> &l ...
- Android之弹出菜单框【注冊上下文菜单】
注冊上下文菜单:(长按弹出一个菜单) 第一种创建方法(与长按事件结合): public class MainActivity extends Activity { private TextView u ...
- JavaScript——BOM(浏览器对象模型),时间间隔和暂停
BOM(浏览器对象模型):能够对浏览器的窗体进行訪问和操作 1.主要的BOM体系: window------------document-------------------------------- ...
- [JavaEE]Spring配置文件总结
首先来看一个标准的Spring配置文件 applicationContext.xml <?xml version="1.0" encoding="UTF-8&quo ...
- android studio开发去掉titlebar
android:theme="@style/AppTheme"换成android:theme="@style/Theme.AppCompat.NoActionBar&qu ...
- Java 自带MD5 校验文件
http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛,关于Java文件监控一文,帖子地址在:http://www.iteye.com/topic/112728 ...