博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu--5119--决策方案数dp
阅读量:5342 次
发布时间:2019-06-15

本文共 2514 字,大约阅读时间需要 8 分钟。

其实 北京站的 dp都没想象中的难..

but .. ..

dp[x,y]表示前x个数xor值==y的方案数有多少种

转移的时候 首先可以将上层的完全赋值到这层 就是假设 a[i] 不参与xor异或

然后 a[i]与上层值进行异或 需要2次遍历所有的方案数

我一度担心要tle 但是 n很小 才40.

我一开始没用滚动数组 直接开了40的。

后来一开滚动数组 我也就不知道为什么一直re...

排了很久 发现我将dp[x,y]的首位开成3 就可以 开成2不可以 我就郁闷了

明明只可能取到0或1啊  因为 num&1 的结果 不是只有0或1吗。。

无语。。。

没想明白.. 要是我明白了 会在下面补上原因

1 #include 
2 #include
3 using namespace std; 4 5 typedef long long LL; 6 int n; 7 const int size = 1000000; 8 LL dp[2][size+10]; 9 int a[45];10 11 void solve( )12 {13 for( int i = 1 ; i<=n ; i++ )14 {15 for( int j = 0 ; j<=size ; j++ )16 {17 dp[ i&1 ][j] = dp[ !(i&1) ][j];18 }19 for( int j = 0 ; j<=size ; j++ )20 {21 dp[ i&1 ][ j^a[i] ] += dp[ !(i&1) ][j];22 }23 }24 }25 26 int main()27 {28 cin.sync_with_stdio(false);29 int t , m;30 LL ans;31 cin >> t;32 for( int k = 1 ; k<=t ; k++ )33 {34 cin >> n >> m;35 memset( dp , 0 , sizeof(dp) );36 for( int i = 1 ; i<=n ; i++ )37 {38 cin >> a[i];39 }40 dp[0][0] = 1;41 ans = 0;42 solve( );43 for( int i = m ; i<=size ; i++ )44 {45 ans += dp[n&1][i];46 }47 cout << "Case #" << k << ": " << ans << endl;48 }49 return 0;50 }
View Code
1 #include 
2 #include
3 using namespace std; 4 5 typedef long long LL; 6 int n; 7 const int size = 1000000; 8 LL dp[3][size+10]; 9 int a[45];10 11 void solve( )12 {13 for( int i = 1 ; i<=n ; i++ )14 {15 for( int j = 0 ; j<=size ; j++ )16 {17 dp[ i&1 ][j] = dp[ !(i&1) ][j];18 }19 for( int j = 0 ; j<=size ; j++ )20 {21 dp[ i&1 ][ j^a[i] ] += dp[ !(i&1) ][j];22 }23 }24 }25 26 int main()27 {28 cin.sync_with_stdio(false);29 int t , m;30 LL ans;31 cin >> t;32 for( int k = 1 ; k<=t ; k++ )33 {34 cin >> n >> m; 35 memset( dp , 0 , sizeof(dp) );36 for( int i = 1 ; i<=n ; i++ )37 {38 cin >> a[i];39 }40 dp[0][0] = 1;41 ans = 0;42 solve( );43 for( int i = m ; i<=size ; i++ )44 {45 ans += dp[n&1][i];46 }47 cout << "Case #" << k << ": " << ans << endl;48 }49 return 0;50 }
View Code

 

 

today:

  nightmare

  下雨了

  等一个人的咖啡

  等一个人的电话

 

转载于:https://www.cnblogs.com/radical/p/4133327.html

你可能感兴趣的文章
实例19 判断用户输入月份的季节
查看>>
【Muduo库】【base】基本类
查看>>
redis-数据结构以及使用场景分析
查看>>
SDN第二次作业
查看>>
ASP.NET MVC之如何看待内置配置来提高性能优化(四)
查看>>
前端页面
查看>>
2019-06-19 滴滴打车一面
查看>>
SQL SERVER 简体与繁体 定序 轉換
查看>>
软件工程时间进度表
查看>>
2015阿里前端工程师在线笔试整理
查看>>
Something about technical writing and documentation
查看>>
FTP 与 SFTP 与 vsFTP
查看>>
Fortify漏洞之Access Control: Database(数据越权)
查看>>
使用JavaScript 做一些頁面卡控
查看>>
Python学习(十) —— 常用模块
查看>>
Python学习(一) —— 基础
查看>>
Rest中获取制定操作的UriTemplate
查看>>
吴裕雄 python 机器学习——线性判断分析LinearDiscriminantAnalysis
查看>>
吴裕雄 python 机器学习——模型选择回归问题性能度量
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:除了屏幕阅读器外,其他设备上隐藏元素...
查看>>