NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2
期望得分:100+100+ =200+
实际得分:100+40+70=210
T1天天寄快递
直接模拟,代码丢了。。。。。。
T2天天和不可描述
splay可A
正解dfs+list
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
#include#include #include
using namespace std;list s;char c;void getstr(bool rev,list &tmp){ tmp.clear(); while(true) { c=cin.get(); if(c==')') break; else if(c=='(') { list tmp2; getstr(!rev,tmp2); if(rev) s.splice(tmp.begin(),tmp2); else s.splice(tmp.end(),tmp2); } else if(rev) tmp.push_front(c); else tmp.push_back(c); }}int main(){ while(1) { c=cin.get(); if(c==EOF) break; else if(c=='(') { list tmp; getstr(true,tmp); s.splice(s.end(),tmp); } else s.push_back(c); } for(list ::iterator iter=s.begin();iter!=s.end();iter++) cout<<*iter; return 0;}
T3 罪犯分组
状压DP
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
#include#include #include using namespace std;bool map[20][20];int f[1<<16|1];int main(){ int n,m,k,u,v; scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=m;i++) scanf("%d%d",&u,&v),u--,v--,map[u][v]=map[v][u]=true; memset(f,63,sizeof(f)); int S=1<