【Codeforces776G】Sherlock and the Encrypted Data
2017-12-19 16:00
387 查看
题意:
设x的16进制表示为xn−1⋯x1x0,那么设h(x)=2xn−1|2xn−2|⋯2x1|2x0,求区间[l,r]中满足x xor h(x)<x的数的个数。题解:
显然只跟最后几位有关,就是一个16进制的数位dp。用记忆化搜索的方式,dfs(x,y,z,flag)表示目前到第x位,各位的最大值为y,最后16位的和到现在的值为z,flag表示是否贴紧上限。
代码:
#include <bits/stdc++.h> #define gc getchar() #define ll long long #define N 16 using namespace std; int a ; ll dp [1<<N]; ll dfs(int x,int y,int z,int flag) { if (x==0) return z>>y&1; if (!flag&&dp[x][y][z]!=-1) return dp[x][y][z]; ll ret=0; int lim=(flag?a[x]:15); for (int i=0;i<=lim;i++) ret+=dfs(x-1,max(y,i),(x<=4)?(z|(i<<((x-1)<<2))):z,flag&&(i==lim)); if (!flag) dp[x][y][z]=ret; return ret; } ll solve(ll now) { if (now<0) return 0; int n=0; while (now) { a[++n]=now%16; now>>=4; } return dfs(n,0,0,1); } int main() { ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); int q; memset(dp,-1,sizeof(dp)); cin>>q; while (q--) { ll l,r; cin>>hex>>l>>hex>>r; cout<<solve(r)-solve(l-1)<<endl; } return 0; }
相关文章推荐
- Sherlock and the Encrypted Data
- A more elegant solution to display GridView header and footer when the data source is empty. (cite)
- What are the most important data structure and algorithms to prepare for Google Interview?
- 107.View the Exhibit and examine the structure and data in the INVOICE table.
- The Spark DataGroup and Spark SkinnableDataContainer containers (摘自adobe)
- 6 ways to download free intraday and tick data for the U.S. stock market
- Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
- Hacker Rank的一道题:Sherlock and the Beast
- [Clojure] Data Collection and Data Analysis on the music of www.xiami.com - Part 6
- The database principal owns a schema in the database, and cannot be dropped. (.Net SqlClient Data Pr
- The story of getting Twitter data and its “missing middle”
- Grounding Data Converters and Solving the Mystery of "AGND" and "DGND"
- ruby get data and loop it from the template
- Struts2 return JSON data and convert the date field
- 6 ways to download free intraday and tick data for the U.S. stock market
- 【CPP Training】Data Abstraction and Hiding the Implementation PA
- 海洋工作室——网站建设专家:The version of SQL Server in use does not support datatype datetime2 and the Entity Framework.
- FSharp.Data.SqlClient: Seamlessly integrating T-SQL and F# in the same code
- The diffrence between TempData and ViewBag and ViewData
- Post Json Data by Ajax, and Parse the Json Data in backend