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的更多相关文章

  1. 2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列

    Gym Class Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  2. 2016百度之星 初赛2A ABEF

    只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...

  3. HDU 5690:2016"百度之星" - 初赛 All X

    原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  4. 2016百度之星 资格赛ABCDE

    看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...

  5. HDU 5688:2016"百度之星" - 资格赛 Problem D

    原文链接:https://www.dreamwings.cn/hdu5688/2650.html Problem D Time Limit: 2000/1000 MS (Java/Others)    ...

  6. HDU 5686:2016"百度之星" - 资格赛 Problem B

    原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others)    ...

  7. HDU 5685:2016"百度之星" - 资格赛 Problem A

    原文链接:https://www.dreamwings.cn/hdu5685/2637.html Problem A Time Limit: 2000/1000 MS (Java/Others)    ...

  8. 百度之星A

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. 【百度之星2014~初赛(第二轮)解题报告】Chess

    声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载.可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...

随机推荐

  1. 29、Oralce(五)

    1)掌握PLSQL程序设计 2)掌握存储过程,函数和触发器 3)了解一些oralceSQL语句优化方案 ------------------------------------------------ ...

  2. 删除 SQL Server 2005 Express 工具

    安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 ...

  3. word 排版问题

    1.wps word为何设置了页边距后下面的页边距不变呢 在章节选项卡中,查看章节导航,有可能是文档分节了,光标所在的节已经调整,而你看到页是另一节 2.分栏 选中你要进行分栏的内容,进行分栏,也可以 ...

  4. java UUID

    UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.UUID具有以下涵义: 经由一定的算法机器生成 为了保证 ...

  5. js 正则表达式中的惰性匹配

    今天看到了一个正则的问题,在其实使用了如下的符号: var reg = /\{(.+?)\}/g; 其中的?号让我疑惑了很久,其实他在这里是惰性匹配的意思,就是能匹配的尽量少匹配.相反,如果不加这个? ...

  6. poj1026 Cipher

    题目意思可概括为给定集合S = {1,..,n}的一个双射关系f, 求经过k次复合之后元素i对应的元素fk(i) (i∈S). 由于函数是双射,一个原像对应唯一一个像,同样一个像有唯一一个原像,考虑整 ...

  7. Fibonacci Again 分类: HDU 2015-06-26 11:05 13人阅读 评论(0) 收藏

    Fibonacci Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...

  8. LYK 快跑!(run)

    LYK 快跑!(run)Time Limit:5000ms Memory Limit:64MB[题目描述] LYK 陷进了一个迷宫! 这个迷宫是网格图形状的. LYK 一开始在(1,1)位置, 出口在 ...

  9. Undefined symbols for architectureIOS

    IOS问题解决. 现在进行老项目的编译,发现不能编译. 经过各种盲目查询,找个几个方案. 1.builde setting修改编译方式. 2.Builde Phases(修改). 2.1.库. 2.1 ...

  10. Infragistics UltraGrid的使用

    OL SDK:http://help.infragistics.com/ 资料参考:http://blog.csdn.net/andy_212/article/details/4019895 http ...