百度之星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/ 站 ...
随机推荐
- 【转载】PostgreSQL分区表(Table Partitioning)应用
博客地址--点击
- 使用Jil序列化JSON提升Asp.net web api 性能
JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了 ...
- 流量分析 seo alexa 排名
百度权重 举例,百度搜索中输入"中医百科" ,排名前三的: http://www.a-hospital.com/w/中医 1. url是关键词的方式,包含中文名,说明当前百度的搜索 ...
- U3D刚体测试3(constraints)
程序这边的接口: mRigidbody.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.Freeze ...
- 《Effective C++》读书摘要
http://www.cnblogs.com/fanzhidongyzby/archive/2012/11/18/2775603.html 1.让自己习惯C++ 条款01:视C++为一个语言联邦 条款 ...
- Kernel启动时 驱动是如何加载的module_init,加载的次序如何;略见本文
Init.h中有相关initcall的启动次序,在system.map中可看出具体的__initcall指针的前后次序 #define pure_initcall(fn) __define_initc ...
- 调试器不能连接到STM32的问题与解决办法
很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link.出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示 ...
- 查看Mac电脑的开机记录
回家以后,发现电脑前的地面上有烟灰.我记不住是不是我抽烟时掉的了.当然,如果不是我掉的,就是别人掉的了.要是别人掉的,估计是坐在我这玩儿电脑的时候掉的了.查一下开机记录吧.打开终端,输入“last|g ...
- Apache Commons-pool实现对象池(包括带key对象池)
Commons-pool是一个apache开源组织下的众多项目的一个.其被广泛地整合到众多需要对象池功能的项目中. 官网:http://commons.apache.org/proper/common ...
- eclipse编辑jsp快捷键保存时特别卡的解决方法
今天eclipse用着用着的时候,每次编辑jsp页面快捷键保存的时候要等半天才保存好,特别的卡.搞的很蛋疼.上网搜了下有解决办法 Window -> Preference -> Gener ...