题目链接:http://codeforces.com/problemset/problem/342/A

题目意思:给出n个数,找出n/3个组且每组有3个数,这三个数必须要符合两个条件:1、a < b < c;2、b mod a = 0 和 c mod b =0。如果找不到,输出-1。

其实每组内只可能是这三组数的其中一组:1 2 4; 1 2 6; 1 3 6

以下注释部分读者可以直接忽略。

/*

刚开始想得很复杂,三个数组分别存储初始数s,记录已输出的数 vis 还有经判断符合条件将要输出的数a。sort从小到大排序,每组数里面的三个数的范围分别是0~n/3,n/3~2n/3和2n/3~n。可想而知,TLE!!!

后来再想,得出每组数的第一个数绝对是1且和n的个数是相等的,输入序列中只要存在5或者7,就绝对是不符合条件的。2、4、6的个数如何确定?本来有种很笨的方法,就是输入的同时统计1、2、4、6的个数,存到c1、c2、c4和c6中,每输出一个就在相应的ci(i=1、2、4 or 6)减1。但是如果不符合如何回溯???总之就是简单问题复杂化了。不堪入目啊!!!

*/

此题分类竟然是属于贪心和模拟,个人觉得像是数学题。

这里的统计1、2、4、6的个数是对数组下标的灵活运用,temp暂时保存输入的数,则s[temp]即可以实现所保存数的个数统计。

至于如何知道1 2 4、 1 2 6 和 1 3 6各有多少个?真心觉得是考个人的观察能力= =!1的总个数 = 2 和 3的总个数,额~~还是拿符号来讲。即 s[1] = s[2] + s[3],另外还有s[1] = s[4] + s[6],最后一条,十分值得注意:s[2] >= s[4],否则对于类似1 3 4 的数据是过不了的!!!!

 #include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std; const int maxn = + ;
int s[maxn]; int main()
{
int n, i, flag, temp;
while (scanf("%d", &n) != EOF)
{
flag = ;
memset(s, , sizeof(s)); // 每一轮一定要记得清零
for (i = ; i < n; i++)
{
scanf("%d", &temp);
s[temp]++; // 数组下标灵活运用
if (temp == || temp == )
flag = ; // 一旦有5和7,就绝对不符合条件了
}
if (flag && s[] == s[] + s[] && s[] == s[] + s[] && s[] >= s[])
{
for (i = ; i < s[]; i++) // 每组数的个数,聪明的读者慢慢体会
printf("1 2 4\n");
for (i = ; i < s[] - s[]; i++)
printf("1 2 6\n");
for (i = ; i < s[]; i++)
printf("1 3 6\n");
}
else
printf("-1\n");
}
return ;
}

codeforces A. Xenia and Divisors 解题报告的更多相关文章

  1. codeforces B. Xenia and Ringroad 解题报告

    题目链接:http://codeforces.com/problemset/problem/339/B 题目理解不难,这句是解题的关键 In order to complete the i-th ta ...

  2. codeforces B. Xenia and Spies 解题报告

    题目链接:http://codeforces.com/problemset/problem/342/B 题目意思:有n个spy,编号从1-n,从左到右排列.现在的任务是,spy s要把信息传递到spy ...

  3. Codeforces Educational Round 92 赛后解题报告(A-G)

    Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...

  4. codeforces 476C.Dreamoon and Sums 解题报告

    题目链接:http://codeforces.com/problemset/problem/476/C 题目意思:给出两个数:a 和 b,要求算出 (x/b) / (x%b) == k,其中 k 的取 ...

  5. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  6. codeforces 507B. Amr and Pins 解题报告

    题目链接:http://codeforces.com/problemset/problem/507/B 题目意思:给出圆的半径,以及圆心坐标和最终圆心要到达的坐标位置.问最少步数是多少.移动见下图.( ...

  7. codeforces 500B.New Year Permutation 解题报告

    题目链接:http://codeforces.com/problemset/problem/500/B 题目意思:给出一个含有 n 个数的排列:p1, p2, ..., pn-1, pn.紧接着是一个 ...

  8. codeforces 462C Appleman and Toastman 解题报告

    题目链接:http://codeforces.com/problemset/problem/461/A 题目意思:给出一群由 n 个数组成的集合你,依次循环执行两种操作: (1)每次Toastman得 ...

  9. codeforces 460A Vasya and Socks 解题报告

    题目链接:http://codeforces.com/problemset/problem/460/A 题目意思:有一个人有 n 对袜子,每天早上会穿一对,然后当天的晚上就会扔掉,不过他会在 m 的倍 ...

随机推荐

  1. schemaLocation value = 'xxxxxxxxxxxx' must have even number of URI's

    这是因为没有加上Spring的版本号,加上就行了,如: http://www.springframework.org/schema/beans/spring-beans.xsd -3.2.2 http ...

  2. PHP经典算法

    php经典算法 .冒泡算法,排序算法,由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序 $array = array(a,f,c,b,e,h,j,i,g); functi ...

  3. ECSHOP编辑器Fckeditor上传图片中文名称乱码的解决方法

    ECSHOP编辑器Fckeditor上传图片中文名称乱码的解决方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2015-02-11   中文名乱码是因为:FCKed ...

  4. js获取页面url的方法

    我们可以用javascript获得其中的各个部分 1, window.location.href 整个URl字符串(在浏览器中就是完整的地址栏) 本例返回值: http://ifisker.com/b ...

  5. 终端terminal配色

    切换到~/.bash_profile,无此.bash_profile文件可创建 在文件内粘入以下代码: #enables colorin the terminal bash shell export ...

  6. ios 清理缓存

    //拿到要清理的路径,其实就是caches的路径,一般像这种很多地方都会用到的地方真好搞成宏,不过现在苹果不提倡用宏了 //在swift中可以定义成全局的常量 //遍历caches,将内部的文件大小计 ...

  7. int(11)最大长度是多少,MySQL中varchar最大长度是多少(转)

    int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表 ...

  8. StackExchange Redis如何实现BRPOP/BLPOP

    今天在使用StackExchange Redis客户端时.我想要使用BRPOP,但是我发现StackExchange Redis并没有提供API,没办法只好找资料看文档了. 原来StackExchan ...

  9. 【整理】Angularjs 监听ng-repeat onfinishrender事件

    http://stackoverflow.com/questions/15207788/calling-a-function-when-ng-repeat-has-finished http://ww ...

  10. javascript正则——贪婪匹配

    熟悉正则的朋友都知道,正则的匹配有“贪婪”和“非贪婪”之分. “贪婪”匹配是尽可能多的匹配: 对于字符串‘aaaa’, /a+/匹配整个字符串,而非贪婪匹配/a+?/匹配的是整个字符串的第一个‘a’, ...