百度之星Astar2016 Round2A
All X
等比数列求和一下 A/B MOD C = A MOD (B*C) / B 或者分治一下
Sitting in Line
状压+拓扑dp
dp(i, j)表示当前二进制状态为j,当前状态的最后一个数字是a[i],然后按照拓扑序dp进行更新,并用一个bool数组记录是否在队列中。
网上还有其他优美的姿势,按某种枚举方式可以达到拓扑序。
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int a[], p[], n; //输入的第i个数是否固定
int vis[], now[];//输出的第i个数是否确定
ll dp[][<<];
bool isin[][<<];
struct P{
int x, y;
P(){}
P(int x, int y):x(x), y(y){}
}; int main(){
int T, ca = ;
cin>>T;
while(T--){
memset(vis, , sizeof(vis));
cin>>n;
for(int i = ; i < n; i++){
cin>>a[i]>>p[i];
if(p[i] != -){
vis[ p[i] ] = true;
now[ p[i] ] = i;
}
} memset(dp, 0x80, sizeof(dp));
memset(isin, , sizeof(isin));
queue<P> Q;
if(vis[]){
dp[ now[] ][ <<now[] ] = ;
isin[ now[] ][ <<now[] ] = true;
Q.push( P(now[], <<now[]) );
}
else{
for(int i = ; i < n; i++)
if(p[i] == -){
dp[i][<<i] = ;
isin[i][<<i] = true;
Q.push( P(i, <<i) );
}
} for(int i = ; i < n; i++){//pos
int size = Q.size();
for(int j = ; j < size; j++){
P pp = Q.front();
Q.pop();
if(vis[i]){
dp[ now[i] ][ pp.y|(<<now[i]) ] = max(dp[ now[i] ][ pp.y|(<<now[i]) ] , dp[pp.x][pp.y]+a[pp.x]*a[ now[i] ]);
if(isin[ now[i] ][ pp.y|(<<now[i]) ] == false)
Q.push( P(now[i], pp.y|(<<now[i])) ), isin[ now[i] ][ pp.y|(<<now[i]) ] = true;
}
else{
for(int k = ; k < n; k++){
if( (pp.y&(<<k)) == &&p[k] == -){
dp[k][pp.y|(<<k)] = max(dp[k][pp.y|(<<k)] , dp[pp.x][pp.y]+a[pp.x]*a[k]);
if(isin[ k ][ pp.y|(<<k) ] == false)
Q.push( P(k, pp.y|(<<k)) ), isin[ k ][ pp.y|(<<k) ] = true;
}
}
}
}
} ll ans = -1e17;
for(int i = ; i < n; i++)
ans = max(ans, dp[i][ (<<n)- ]);
printf("Case #%d:\n", ca++);
cout<<ans<<endl;
}
return ;
}
BD String
从某个点断开后,后面的部分折到前面来,刚好和前面部分的后半段拼成一个整体。
#include <bits/stdc++.h>
typedef long long ll;
using namespace std; ll getsum(ll x){
if(x <= )
return x; ll fir = ;
while( fir* <= x)
fir <<= ; return 1LL+x-fir + getsum( fir-(x-fir)- );
}
int main(){
int t, ca = ;
ll l, r;
cin>>t;
while(t--){
cin>>l>>r;
ll ans = getsum(r)-getsum(l-);
cout<<ans<<endl;
}
return ;
}
Gym Class
SB拓扑排序即可。
百度之星Astar2016 Round2A的更多相关文章
- 2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 2016百度之星 初赛2A ABEF
只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...
- HDU 5690:2016"百度之星" - 初赛 All X
原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others) Mem ...
- 2016百度之星 资格赛ABCDE
看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...
- HDU 5688:2016"百度之星" - 资格赛 Problem D
原文链接:https://www.dreamwings.cn/hdu5688/2650.html Problem D Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5686:2016"百度之星" - 资格赛 Problem B
原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5685:2016"百度之星" - 资格赛 Problem A
原文链接:https://www.dreamwings.cn/hdu5685/2637.html Problem A Time Limit: 2000/1000 MS (Java/Others) ...
- 百度之星A
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 【百度之星2014~初赛(第二轮)解题报告】Chess
声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载.可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...
随机推荐
- 如何检查失败的Segment/master
在启用Mirror情况下,可能出现Segment失败时,系统不会中断服务,而且没有明确提示.检查系统状态的一种方法就是使用gpstate命令.该命令会列出GPDB系统中每个独立组件(Primary I ...
- 修改tomcat的logo
每页的<head> 里添加 <link rel="icon" href="favicon.gif" /> 图片名称必须是favi ...
- 关于viewport的研究
昨天项目中用到了适应移动端显示的viewport,一般的使用方式如下: <meta name="viewport" content="width=device-wi ...
- lua中for循环
, do ') end 显示的结果是 xbwang@xbwang-desktop:~/Desktop$ th for.lua 其他语言只会输出一个2,lua的这个for循环输出了两个2 Lua 编程语 ...
- Keytool生成csr
一. 首先生成密钥库 keytool -genkey -keyalg RSA -keysize 4096 -keystore c:\keystore4096.jks 二.生成csr keytool - ...
- Xcode_5
Xcode_5 Objective-C进行IOS7编程 我个人的经验是,如果之前有过编程基础(无论是C.C++还是Java),那么<Objective-C基础教程>(图灵程序设计丛书 ...
- Ubuntu安装后的一些配置
对新安装的Ubuntu的一些配置: #移除无用包 apt-get remove libreoffice-common apt-get remove unity-webapps-common apt-g ...
- HDU 5688 Problem D map
Problem D Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Xcode性能优化2
使用Xcode Analyze进行代码静态检查 1,value stored to 'XX' is never read 改成: NSDate *date = [formatter dateFromS ...
- MSM8909平台 LED背光的控制
之前齐师兄问我,是不是应该有一个文件记录背光灯的亮度,我说理论上有,但是在哪里我真的还没有见过.只知道在调LCD驱动的时候会调用一个背光控制的函数,传进来一个亮度值就可以配置亮度了,至于这个函数是谁调 ...