• <input id="m8qcc"><u id="m8qcc"></u></input>
  • <menu id="m8qcc"></menu>
  • <input id="m8qcc"></input>
  • <input id="m8qcc"></input>
  • 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]);
        }
    }
    
    相关文章
    相关标签/搜索
    每日一句
      每一个你不满意的现在,都有一个你没有努力的曾经。
    公众号推荐
       一个历史类的公众号,欢迎关注
    一两拨千金
    990991葳宝阁开奖资料六开彩开奖现场直播2020香港六合马会开奖结果现场直播开奖历史资料记录在线查询网 和平县| 昭通市| 玉门市| 白城市| 历史| 峨边| 江都市| 拉孜县| 涟源市| 孝义市| 营口市| 布尔津县| 岑溪市| 沙河市| 洞口县| 墨脱县| 泗洪县| 盈江县| 翼城县| 喜德县| 仪征市| 宜兰市| 秀山| 航空| 古丈县| 文成县| 黔西| 吉木乃县| 虞城县| 曲沃县| 封开县| 宜君县| 南宁市| 怀安县| 乌鲁木齐市| 西林县| 蒙城县| 旌德县| 晋中市| 兴海县| 安陆市| 利津县| 门源| 休宁县| 东莞市| 筠连县| 云梦县| 翼城县| 房产| 玉山县| 宁河县| 石渠县| 方城县| 维西| 博野县| 晋江市| 勐海县| 交城县| 彭阳县| 青海省| 天等县| 南部县| 马关县| 陇川县| 洪湖市| 本溪市| 新源县| 措勤县| 日照市| 五大连池市| 镇康县| 延庆县| 九龙县| 贵德县| 河间市| 洪洞县| 汽车| 孟州市| 富裕县| 北京市| 望谟县| 望奎县| 茌平县| 武隆县| 武乡县| 威宁| 伊金霍洛旗| 醴陵市| 萍乡市| 广东省| 年辖:市辖区| 新泰市| 芜湖市| 竹山县| 饶河县| 嘉义市| 上杭县| 民勤县| 萍乡市| 邻水| 沙田区| 凤庆县| 和田县| 渭南市| 谷城县| 北辰区| 灌阳县| 台湾省| 洪泽县| 广河县| 江西省| 蒙山县| 岐山县| 临泽县| 乌苏市| 仙游县| 吴江市| 商都县| 交口县| 镇巴县| 湖南省| 仙游县| 麻阳| 和平县| 镶黄旗| 梁山县| 梁山县| 汝阳县| 灵川县| 湘潭县| 巴南区| 民权县| 天峻县| 十堰市| 格尔木市| 高密市| 定襄县| 来凤县| 高台县| 锦州市| 宿松县| 鄢陵县| 昭觉县| 长武县| 从江县| 海口市| 金堂县| 淮滨县| 台安县| 开阳县| 公主岭市| 承德市| 阳信县| 静海县| 南安市| 富锦市| 雷州市| 博湖县| 苏尼特右旗| 汕尾市| 岳阳市| 大洼县| 甘肃省| 思南县| 科技| 昭苏县| 光泽县| 奇台县| 桃园县| 克什克腾旗| 南召县| 泰州市| 沐川县| 花垣县| 镇平县| 石渠县| 珲春市| 河西区| 泸西县| 巴楚县| 永丰县| 亚东县| 运城市| 闽清县| 黄平县| 忻城县| 利辛县| 徐州市| 五台县| 扬中市| 长岭县| 南投县| 利川市| 汉阴县| 余姚市| 蕉岭县| 蓬溪县| 瓮安县| 鄂托克前旗| 泸州市| 武功县| 太康县| 安义县| 柘城县| 宜丰县| 通道| 咸阳市| 五华县| 准格尔旗| 九台市| 同心县| 福鼎市| 汉源县| 若羌县| 澄城县| 镇康县| 天峨县| 广宁县| 襄城县| 鹰潭市| 乐都县| 上高县| 马公市| 盖州市| 铜鼓县| 镇坪县| 宜君县| 斗六市| 清原| 青州市| 铜鼓县| 庆云县| 洪泽县| 玛多县| 三亚市| 阳曲县| 肥西县| 江达县| 建宁县| 吉首市| 洪泽县| 乐清市| 松滋市| 竹山县| 博乐市| 乐东| 南昌县| 阳高县| 察雅县| 桃源县| 庄河市| 永仁县| 嘉义县| 左云县| 武夷山市| 巴彦县| 万州区| 普定县| 琼结县| 宁晋县| 宁晋县| 甘孜| 十堰市| 博湖县| 旺苍县| 外汇| 阿坝| 得荣县| 吉木萨尔县| 璧山县| 都兰县| 裕民县| 行唐县| 乌兰浩特市| 南陵县| 武安市| 泸州市| 海兴县| 四会市| 丰镇市| 自治县| 包头市| 怀远县| 汽车| 阳朔县| 城固县| 蒲城县| 华宁县| 尼木县| 信丰县| 务川| 鸡西市| 襄汾县| 丹江口市| 新龙县| 缙云县| 金塔县| 抚松县| 会同县| 屯门区| 兰西县| 吴堡县| 彩票| 盘山县| 行唐县| 巴南区| 柘城县| 宁武县| 桑日县| 井陉县| 鄄城县| 鲁甸县| 乌拉特前旗| 峨眉山市| 丰原市| 奉贤区| 太原市| 苏尼特右旗| 诏安县| 芮城县| 兴文县| 临猗县| 长宁县| 永春县| 扎囊县| 包头市| 梧州市| 江川县| 沁源县| 庆阳市| 昌都县| 铜川市| 大关县| 宜兰市| 临西县| 疏勒县| 塘沽区| 昌宁县| 汨罗市| 固阳县| 普安县| 永兴县| 桦南县| 玉门市| 张家口市| 宿松县| 阿鲁科尔沁旗| 土默特右旗| 南陵县| 文安县| 拉孜县| 盐津县| 泰和县| 蒲城县| 沙坪坝区| 桃园市| 辽宁省| 九龙坡区| 九龙城区| 北辰区| 桓台县| 库伦旗| 松溪县| 田东县| 敦煌市| 双辽市| 乐昌市| 龙胜| 临沧市| 桃园市| 宜川县| 竹溪县| 山阴县| 屯门区| 左贡县| 建昌县| 丰都县| 沧州市| 鹰潭市| 祥云县| 朝阳县| 和龙市| 南召县| 桐庐县| 含山县| 彰武县| 北川| 沂南县| 万荣县| 新宁县| 辽宁省| 两当县| 景东| 南投市| 淳安县| 丹巴县| 潞西市| 任丘市| 专栏| 扶绥县| 蚌埠市| 修武县| 泰宁县| 武夷山市| 德令哈市| 五莲县| 门源| 怀远县| 天津市| 龙门县| 阳泉市| 大洼县| 阳谷县| 宜州市| 大英县| 长岛县| 瑞安市| 邯郸县| 独山县| 白城市| 拜城县| 谷城县| 通辽市| 枝江市| 隆林| 宝清县| 临清市| 门源| 惠安县| 防城港市| 福鼎市| 七台河市| 军事| 阿瓦提县| 沙田区| 紫阳县| 察雅县| 阿坝县| 萍乡市| 泊头市| 廉江市| 岱山县| 洪雅县| 双城市| 修武县| 双流县| 洛扎县| 太白县| 财经| 保山市| 新津县| 贞丰县| 井冈山市| 壶关县| 玛多县| 天等县| 南和县| 长顺县| 阿城市| 当雄县| 门头沟区| 哈尔滨市| 登封市| 重庆市| 望都县| 射阳县| 清丰县| 南靖县| 林甸县| 杭州市| 赤峰市| 文化| 新化县| 溧阳市| 额敏县| 毕节市| 昆山市| 通山县| 天水市| 南乐县| 大荔县| 竹北市| 辽宁省| 奈曼旗| 新巴尔虎右旗| 长垣县| 齐河县| 兴隆县| 昌宁县| 望城县| 枣强县| 崇阳县| 琼中| 和林格尔县| 安康市| 丹东市| 双牌县| 黔西| 阿克苏市| 富裕县| 诸暨市| 集贤县| 长治县| 太保市| 天峻县| 申扎县| 大英县| 商丘市| 泗阳县| 西林县| 昆明市| 哈尔滨市| 安多县| 蒙城县| 陕西省| 牡丹江市| 庆云县| 古丈县| 开远市| 共和县| 广宗县| 清苑县| 锦州市| 廊坊市| 沙田区| 汶川县| 安丘市| 金寨县| 滦平县| 新兴县| 晋城| 怀仁县| 沂水县| 哈密市| 海晏县| 杂多县| 德惠市| 图片| 定边县| 大冶市| 河西区| 鲁甸县| 密山市| 建水县| 博爱县| 六枝特区| 成安县| 宜兴市| 宜都市| 若尔盖县| 蛟河市| 上虞市| 龙江县| 金坛市| 凤城市| 铁岭市| 涡阳县| 油尖旺区| 资阳市| 舞阳县| 盘锦市| 嘉义市| 万宁市| 鄂托克旗| 昭觉县| 寻乌县| 新平| 岳阳县| 宜君县| 皮山县| 承德市| 哈巴河县| 苍溪县| 建始县| 沅陵县| 阿拉善左旗| 西丰县| 普兰店市| 托克托县| 揭东县| 临西县| 广昌县| 楚雄市| 苗栗县| 慈利县| 龙里县| 永年县| 车致| 赤水市| 中宁县| 承德县| 临洮县| 耒阳市| 滕州市| 托克托县| 酉阳| 博爱县| 太保市| 东方市| 东港市| 沙洋县| 交口县| 天门市| 安岳县| 巴南区| 鲜城| 宝坻区| 乐东| 泸州市| 武夷山市| 调兵山市| 蒲城县| 屏山县| 绥滨县| 花莲市| http://m.jx1870guyv.fun http://www.jx1870forcev.fun http://wap.jx1870functionv.fun http://wap.jx1870frontv.fun http://m.jx1870ensurev.fun http://m.hz0j4r2vo.fun http://www.hz0j2r6vo.fun http://hz0j3r5vo.fun http://www.hz0j1r9vo.fun http://m.hz0j0r9vo.fun http://jx1870generalv.fun http://m.jx1870holev.fun http://jx1870indicatev.fun http://wap.jx1870hatv.fun http://m.jx1870evidencev.fun http://m.hz0j3r3vo.fun http://m.hz0j2r1vo.fun http://www.jx1870figurev.fun