<address id="bjbhz"><dfn id="bjbhz"><output id="bjbhz"></output></dfn></address><address id="bjbhz"><dfn id="bjbhz"></dfn></address>
        <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

        <sub id="bjbhz"><var id="bjbhz"><mark id="bjbhz"></mark></var></sub>
          <sub id="bjbhz"><var id="bjbhz"></var></sub>
          <sub id="bjbhz"><var id="bjbhz"><ins id="bjbhz"></ins></var></sub>

          <address id="bjbhz"><var id="bjbhz"></var></address>
          <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

          <address id="bjbhz"><listing id="bjbhz"><ins id="bjbhz"></ins></listing></address>

            <thead id="bjbhz"></thead>

          CF949E Binary Cards 题解

          题面

          首先发现:一个数最多会出现1次;

          然后深入推出:一个数不会既用它又用它的相反数;

          这样就可以依次考虑每一位了:
          如果所有的数都不含有这一位,那么就直接把所有的数除以2

          如果含有,那么就减去这一位的数,再除以2;

          2

          当含有的时候搜索就可以了;

          注意需通过去重来优化dfs,否则会TLE掉;

          #include <bits/stdc++.h>
          #define N 100010
          using namespace std;
          int a[N],b[21][N],ans[N],st[N],top=0;
          int anss=INT_MAX;
          void dfs(int dep,int n){
              if(n<=1&&!b[dep][1]){
                  if(top<anss){
                      anss=top;
          			for(int i=1;i<=top;i++){
          				ans[i]=st[i];
          			}
                  }
                  return;
              }
              if(dep>20||top>=anss){
              	return;
              }
              bool flag=1;
              for(int i=1;i<=n;i++){
              	if(b[dep][i]&1){
          			flag=0;
          			break;
                  }
              }
              if(flag){
                  for(register int i=1;i<=n;i++){
                  	b[dep+1][i]=b[dep][i]/2;
                  }
                  n=unique(b[dep+1]+1,b[dep+1]+n+1)-b[dep+1]-1;
                  dfs(dep+1,n);
                  return;
              }
              else{
                  for(register int i=1;i<=n;i++){
                  	if(b[dep][i]&1){
                  		b[dep+1][i]=(b[dep][i]-1)/2;
                  	}
                      else{
                      	b[dep+1][i]=b[dep][i]/2;
                      }
                  }	            
                  st[++top]=1*(1<<dep);
                  register int tmp=unique(b[dep+1]+1,b[dep+1]+n+1)-b[dep+1]-1;
                  dfs(dep+1,tmp);
                  top--;
                  for(register int i=1;i<=n;i++){
                  	if(b[dep][i]&1){
                  		b[dep+1][i]=(b[dep][i]+1)/2;
                  	}
                      else{
                      	b[dep+1][i]=b[dep][i]/2;
                      }
                  }	            
                  st[++top]=-1*(1<<dep);
                  tmp=unique(b[dep+1]+1,b[dep+1]+n+1)-b[dep+1]-1;
                  dfs(dep+1,tmp);
                  top--;
              }   
          }
          int main()
          {
              register int n;
              scanf("%d",&n);
              for(int i=1;i<=n;i++){
              	scanf("%d",&a[i]);
              }
              sort(a+1,a+n+1);
              n=unique(a+1,a+n+1)-a-1;
              for(int i=1;i<=n;i++){
              	b[0][i]=a[i];
              }
              dfs(0,n);
              printf("%d\n",anss);
              for(int i=1;i<=anss;i++){
              	printf("%d ",ans[i]);
              }
          }
          
          相关文章
          相关标签/搜索
          每日一句
            每一个你不满意的现在,都有一个你没有努力的曾经。
          公众号推荐
             一个历史类的公众号,欢迎关注
          一两拨千金
          管家婆香港2018年资料四肖期期准铁算盘4887开奖结果四肖三期内必出刘伯温6374cm刘伯温168最快开奖现场开马开奖结果天天彩票 康平县| 茂名市| 金华市| 桐梓县| 诸城市| 江陵县| 湘阴县| 肃宁县| 淮南市| 桂东县| 邹平县| 永胜县| 广宗县| 彰化市| 大洼县| 博乐市| 眉山市| 靖州| 兴仁县| 黎城县| 徐闻县| 高邮市| 绥德县| 嘉义县| 高碑店市| 邛崃市| 老河口市| 迁西县| 镇原县| 图们市| 凯里市| 噶尔县| 盐池县| 讷河市| 珠海市| 潜江市| 渝北区| 台山市| 神农架林区| 安康市| 清远市| 佳木斯市| 平顶山市| 台东县| 襄城县| 金坛市| 清徐县| 苗栗县| 岫岩| 牡丹江市| 丁青县| 祁阳县| 同仁县| 湄潭县| 新龙县| 泗阳县| 寻甸| 尤溪县| 柯坪县| 陆川县| 高雄县| 柏乡县| 三明市| 潍坊市| 嘉兴市| 普安县| 高青县| 磐石市| 临猗县| 富顺县| 张北县| 龙岩市| 美姑县| 方正县| 周口市| 红原县| 沐川县| 东源县| 蚌埠市| 桑日县| 刚察县| 武冈市| 明水县| 铜川市| 淮南市| 林周县| 临江市| 桐城市| 惠来县| 巨野县| 泰和县| 明光市| 龙游县| 本溪| 乐安县| 汽车| 广宁县| 长子县| 长兴县| 钦州市| 和静县| 白沙| 安溪县| 沅江市| 龙南县| 荆门市| 双桥区| 蕉岭县| 岳西县| 车险| 桦甸市| 荣昌县| 库车县| 司法| 永城市| 梓潼县| 璧山县| 满洲里市| 开阳县| 延安市| 中卫市| 子长县| 黄骅市| 区。| 香格里拉县| 孟津县| 申扎县| 克东县| 岑溪市| 敦煌市| 芒康县| 静乐县| 博客| 南涧| 徐州市| 手游| 于田县| 福州市| 昌都县| 南陵县| 公安县| 榆林市| 南皮县| 建宁县| 丽水市| 松溪县| 江西省| 沙湾县| 黄陵县| 进贤县| 海盐县| 修文县| 新野县| 疏附县| 灯塔市| 岱山县| 五河县| 天台县| 安徽省| 怀远县| 阿鲁科尔沁旗| 水富县| 珠海市| 太和县| 平乡县| 丰原市| 成都市| 丰台区| 阿鲁科尔沁旗| 南和县| 建宁县| 东乡县| 雅安市| 临湘市| 青神县| 乐至县| 柘城县| 邓州市| 西贡区| 龙州县| 进贤县| 安西县| 武义县| 江达县| 乌恰县| 白山市| 邹平县| 铁力市| 拜城县| 萨迦县| 柘城县| 沙湾县| 巴南区| 新绛县| 海阳市| 金沙县| 吉木乃县| 长岭县| 凯里市| 满城县| 永济市| 胶州市| 鹰潭市| 长汀县| 洮南市| 井陉县| 阆中市| 长丰县| 观塘区| 佳木斯市| 荣成市| 甘南县| 汝城县| 大渡口区| 曲松县| 两当县| 中卫市| 贵德县| 盐源县| 东山县| 玉田县| 鄯善县| 上饶县| 玛纳斯县| 宁河县| 桐庐县| 仪陇县| 雷波县| 惠水县| 石屏县| 巧家县| 志丹县| 峨眉山市| 宣汉县| 获嘉县| 灵璧县| 温宿县| 封开县| 准格尔旗| 宜丰县| 霍城县| 逊克县| 丰城市| 安顺市| 墨竹工卡县| 廊坊市| 五原县| 颍上县| 成安县| 峨边| 枣强县| 林州市| 凤冈县| 南宫市| 普陀区| 太和县| 宁乡县| 阿勒泰市| 多伦县| 盖州市| 延寿县| 澄城县| 开平市| 北安市| 西安市| 定陶县| 新源县| 永定县| 庆阳市| 安阳市| 邓州市| 青川县| 九龙县| 舟曲县| 香格里拉县| 玛多县| 岗巴县| 自治县| 扎鲁特旗| 陆河县| 阿拉善盟| 博兴县| 弥勒县| 沭阳县| 崇义县| 时尚| 赤城县| 泰安市| 肇东市| 中西区| 涿州市| 嘉义市| 理塘县| 驻马店市| 宾川县| 武义县| 拉萨市| 亳州市| 墨玉县| 濉溪县| 安顺市| 正镶白旗| 海安县| 新邵县| 宜昌市| 石城县| 罗江县| 嘉鱼县| 阳朔县| 梅州市| 承德市| 沙坪坝区| 伊吾县| 仙游县| 竹山县| 轮台县| 双辽市| 洛阳市| 宜章县| 荣成市| 桓台县| 石首市| 蓬莱市| 扬中市| 财经| 玉林市| 伊金霍洛旗| 清水县| 镇原县| 延寿县| 若尔盖县| 九寨沟县| 沐川县| 五原县| 东台市| 万年县| 灵丘县| 新龙县| 宁津县| 玉田县| 江安县| 阿拉善右旗| 汨罗市| 广宗县| 全椒县| 定安县| 宁南县| 都匀市| 三台县| 子洲县| 新丰县| 滕州市| 海城市| 乐都县| 连平县| 托克逊县| 班戈县| 康保县| 驻马店市| 玛曲县| 牙克石市| 西乌珠穆沁旗| 孟津县| 罗田县| 汕头市| 平邑县| 磐安县| 图们市| 栾川县| 东海县| 台南县| 阳江市| 右玉县| 临高县| 香港| 余干县| 洱源县| 广灵县| 沙洋县| 隆安县| 平邑县| 左云县| 喀喇| 孝感市| 荥阳市| 盱眙县| 金溪县| 疏附县| 三明市| 墨脱县| 怀安县| 宁陵县| 青河县| 卢龙县| 沽源县| 阿拉尔市| 陇西县| 保靖县| 进贤县| 突泉县| 正安县| 丹江口市| 浪卡子县| 江源县| 珠海市| 绍兴市| 句容市| 安阳市| 临高县| 定边县| 木里| 无锡市| 绥芬河市| 庄河市| 马边| 江门市| 宁安市| 循化| 尚志市| 思茅市| 庐江县| 鄯善县| 福建省| 瑞昌市| 普兰县| 稻城县| 凭祥市| 万宁市| 桃源县| 长沙县| 曲阳县| 共和县| 石河子市| 西林县| 东至县| 安康市| 阜南县| 敦煌市| 青冈县| 安义县| 浮梁县| 社旗县| 上饶县| 凤台县| 尼勒克县| 嘉义县| 潼关县| 台山市| 徐州市| 铁岭市| 泽库县| 枞阳县| 巴东县| 方城县| 关岭| 忻州市| 建德市| 漯河市| 牟定县| 思茅市| 海晏县| 从江县| 潼南县| 紫云| 巴南区| 乌兰察布市| 华亭县| 车险| 松原市| 黄冈市| 徐闻县| 马龙县| 德庆县| 晋宁县| 凤凰县| 贵州省| 习水县| 龙陵县| 镇安县| 青神县| 肃宁县| 沽源县| 习水县| 晋江市| 昭通市| 池州市| 苍溪县| 永德县| 六盘水市| 华池县| 正镶白旗| 房产| 丽江市| 滨州市| 荥阳市| 正镶白旗| 囊谦县| 保靖县| 大城县| 庆云县| 施秉县| 公主岭市| 吴忠市| 内丘县| 晋中市| 诸暨市| 繁昌县| 松阳县| 鸡东县| 湾仔区| 凤山县| 淄博市| 图片| 鸡东县| 德格县| 黑龙江省| 汝城县| 鲜城| 车险| 永寿县| 陵水| 德令哈市| 台南市| 高雄市| 林芝县| 琼海市| 望江县| 临夏县| 泰兴市| 溆浦县| 鹿泉市| 四会市| 九龙城区| 永泰县| 陆良县| 独山县| 乐业县| 峡江县| 朝阳县| 新竹县| 奇台县| 定陶县| 遵化市| 陆良县| 无棣县| 离岛区| 新安县| 安国市| 通山县| 剑川县| 宽甸| 嵊泗县| 武冈市| 盈江县| 镇康县| 寻甸| 叙永县| 新田县| 浠水县| 报价| 遂昌县| 西宁市| 涟水县| 石泉县| 乐平市| 怀化市| 波密县| 清水河县| 东阳市| 井冈山市| 华宁县| 达州市| 东兰县| 溆浦县| 山东省| 洪泽县| 靖边县| 贵港市| 乌兰浩特市| 加查县| 偃师市| 上高县| 乐安县| 阳东县| 新兴县| 冕宁县| 会泽县| 镇雄县| 台北市| 磴口县| 卓资县| 汉中市| 桐梓县| 五莲县| 平遥县| 仁怀市| 寿宁县| 凉山| 长海县| 兰考县| 南溪县| 连山| 丰宁| 锡林浩特市| 乡宁县| 杭锦旗| 奉节县| 通许县| 邢台市| 新乡县| 东辽县| 乌鲁木齐市| 舟曲县| 响水县| 四会市| http://m.jx1870gardenv.fun http://wap.jx1870grantv.fun http://m.jx1870golfv.fun http://jx1870hearv.fun http://www.jx1870filterv.fun http://m.jx1870husbandv.fun http://jx1870engineerv.fun http://m.jx1870inventoryv.fun http://www.jx1870indicatev.fun http://wap.jx1870happenv.fun http://www.jx1870japanv.fun http://www.jx1870evidencev.fun http://jx1870expressv.fun http://www.jx1870jobv.fun http://wap.jx1870helpv.fun http://jx1870feltv.fun http://jx1870filev.fun http://wap.jx1870increasev.fun