9
3 7 7 7 7 5 6 6
先把这N-1个数字按从大到小排序 7 7 7 7 6 6 5 3
第一个人认识了7个人,除了主持人还剩6个,就当是认识最靠近他后面的6个。
这样,除去第一个人,后面认识的人就都减少了一个,变成了:
7 6 6 6 5 5 4 3 再次排序
从第二个人,除了主持人和第一个,应该认识5个人,就当是认识最靠近他后面的5个
这样,除去这个人,后面认识的人就都减少了一个,变成了 7 6 5 5 4 4 3 3
排序,相减,重复下去
如果最后出现了0,就说明有人说谎
如果排序后,当前认识的人和其后面的人数都是1了,那一个人都是主持人,也是Maybe truth
[cpp] view plaincopy
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
转载请标明出处,原文地址:
http://blog.csdn.net/hackbuteer1/article/details/6678851
#include
int cmp(const void *a, const void *b) {
return *(int *)b - *(int *)a; }
int main(void) {
int i, j, n, a[100];
while (scanf(\, &n) != EOF && n) {
for(i = 0; i < n - 1; ++i) scanf(\, &a[i]); for(i = 0; i < n - 1; ++i) {
qsort(a + i, (n - i - 1), sizeof(int), cmp); if(0 == a[n - 2]) {
printf(\); break; }
else if(1 == a[i]) {
printf(\); break; } else {
for(j = 1; j < a[i]; ++j) --a[i + j]; } } } return 0; }
2014
1.编写一个浏览器输入输出 对应杭电oj的第1088题 2.Encoding 对应杭电oj的1020题
2015年杭州电子科技大学计算机科学与技术复试题目
textworld - 2015-3-24 - 默认 - 70 则阅读
一共两个程序设计题,每题50分。
第一题
给定一个字符串,计算字符串中数值的个数并求和。其中还包含了负号-,若紧跟负号的是一个数值,则表示这是一个负数,若后面跟着的不是数字,则不表示什么
输入:一个字符串 输出:数值个数 数值和 例子
输入:312ab-2-- -9--a 输出:3 301
第二题
给定一个数字矩阵,如果上下左右数值相同,则表示是一个连通的区域。求矩阵中连通块的数量。 输入:
先是矩阵的行数和列数 接着是矩阵 输出:
连通块的数量 例子: 5 6
4 4 4 4 4 4 4 2 3 3 1 4 4 2 2 3 1 4 4 2 3 3 1 4 4 4 4 4 4 4 输出: 4
说明,所有4能连起来,还有2,3 1,都各自能连通块
相关推荐: