codeforces#238_div2_D Toy Sum
来源:互联网 发布:sqlserver免费吗 编辑:程序博客网 时间:2024/06/04 17:46
题目地址:cf#238_div2_D
思路:
利用对称的思想,配对
1-s ,2-(s-1),3-(s-2).....k-(s-k+1)
如果两个都在已经选择的集合里面, 就找一组和为s+1 ,都没有选的加入Y 集合
但是只能加入一组,所以引进来done数组,代表是否已被处理
int l=1;要放在最外面,否则会超时,本来之前考虑过的都不用再考虑了。
代码:
#include<iostream>#include<cstdio>#include<vector>#include<cstring>using namespace std;const int s=1000000;int b[s+5];int p[s+5];int done[s+5];int main(){ int n; cin>>n; memset(b, 0, sizeof(b)); memset(done, 0, sizeof(done)); vector<int> ans; int temp; for(int i=0;i<n;i++) { scanf("%d",&temp); b[temp]=1; p[i]=temp; } int l=1; for(int i=0;i<n;i++) { if(done[p[i]]==0) { if(b[s-p[i]+1]==0) { ans.push_back(s-p[i]+1); b[s-p[i]+1]=1; } else { while(b[l]||b[s-l+1]) { l++; } ans.push_back(l); b[l]=1; ans.push_back(s-l+1); b[s-l+1]=1; done[s-p[i]+1]=1; } } } cout<<ans.size()<<endl; for(int i=0;i<ans.size();i++) { if(i) printf(" "); printf("%d",ans[i]); } }
0 0
- codeforces#238_div2_D Toy Sum
- codeforces#232_div2_D On Sum of Fractions
- Toy Sum(codeforces)
- CodeForces 405D Toy Sum
- codeforces 405 d toy sum
- Codeforces 405D Toy Sum
- CodeForces 405D Toy Sum【思维】
- Codeforces 406B Toy Sum【思维】
- cf#238 (Div. 1) B. Toy Sum
- Codeforces Round #216_div2_D.Valera and Fools
- Codeforces Round #215_div2_D. Sereja ans Anagrams
- codeforces#235_div2_D Roman and Numbers ,dp
- Codeforces#239_div2_D Long Path dp
- Codeforces Round #216_div2_D.Valera and Fools
- codeforces#234_div2_D Dima and Bacteria floyd+并查集
- CodeForces 303A Toy Cars
- CodeForces 84. A Toy Army
- Codeforces 84A:Toy Army
- 用python创建Cocos2dx的lua工程
- 设计模式之八:Bridge(桥接)—对象结构型模式
- 9.4 客户端请求过的滤器
- 形态学变换
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第三题:李白打酒 (8' )
- codeforces#238_div2_D Toy Sum
- 关于冯.诺依曼的八卦
- 背景建模PbModel
- 入职记录
- struts2.x学习笔记 超详细
- 基本的阈值操作
- 字符串编码问题(Ascii、Unicode、UCS-2、GBK、UTF-8)
- 堆的动态创建与根节点删除
- Java中的Timer和TimerTask的用法