Description
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
Input
输入包括n组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。
Output
对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。
Sample Input
3
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
Sample Output
3
2
0

思路:找出所有结合,写出所有情况,判断两个数是否一个为另一个的倍数。
for(int i=1;i<=n-1;i++) {
for(int j=i+1;j<=n;j++) {
if(a[i]==2a[j]||a[j]==2a[i])//ai为aj 两倍或aj为ai两倍
ans++;//如果满足两个数一个为另一个的两倍,结果+1 } }

完整代码
#include <stdio.h>
using namespace std;
int main()
{    int t,cnt,ans,a[20];
    scanf("%d",&t);
    for(int ca=1;ca<=t;ca++)//while(t--)
    {        cnt=0;ans=0;
        int x;
        while(~scanf("%d",&x))
        {            if(x==0) break;
            cnt++;
            a[cnt]=x;
        }
for(int i=1;i<=cnt-1;i++)
        {            for(int j=i+1;j<=cnt;j++)
            {                    if(a[i]==2*a[j]||a[j]==2*a[i])
                        ans++;
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

//注:cnt为输入数据个数,每输入一个数+1,相当于上页的n
在小明曾经玩过的一种对号码的纸牌游戏(乐透)里,玩家必须从{1,2,……,49}中选择6个数。玩Lotto的一个流行策略是(虽然它并不增加你赢的机会):就是从这49个数中,选出k(k>6)个数组成一个子集S,然后只从S里拿出牌来玩几局游戏。例如,k=8,s={1,2,3,5,8,13,21,34},那么有28场可能的游戏:[1,2,3,5,8,13],[1,2,3,5,8,21],[1,2,3,5,8,34],[1,2,3,5,13,21],……,[3,5,8,13,21,24]。
读取数字k和一组数S,输出由S中的数组成的所有可能的游戏。
Input
输入数据有多组,每组一行,每行有多个整数,其中第一个整数为数字k,接下来有k个整数,即子集S。当k为0,输入结束。
Output
输出由S中的数组成的所有可能的游戏。每种游戏一行。
Sample Input
7 1 2 3 4 5 6 7
0
Sample Output
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

for(i=1;i<=k;i++)
        {            for(j=i+1;j<=k;j++)
            {                for(x=j+1;x<=k;x++)
                {                    for(r=x+1;r<=k;r++)
                    {                        for(t=r+1;t<=k;t++)
                        {                            for(l=t+1;l<=k;l++)
                            {                                printf("%d %d %d %d %d %d\n",m[i],m[j],m[x],m[r],m[t],m[l]);
                            }
                        }
                    }
                }
            }
        }

【改进后】

for(int i1=1;i1<=k-5;i1++)
        {            for(int i2=i1+1;i2<=k-4;i2++)
            {                for(int i3=i2+1;i3<=k-3;i3++)
                {                    for(int i4=i3+1;i4<=k-2;i4++)
                    {                        for(int i5=i4+1;i5<=k-1;i5++)
                        {                            for(int i6=i5+1;i6<=k;i6++)
                            {                                printf("%d %d %d %d %d %d\n",a[i1],a[i2],a[i3],a[i4],a[i5],a[i6]);
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
Input
输入包括n组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。
Output
对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。
Sample Input
3
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
Sample Output
3
2
0

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{     int x,n,ans,i,j,q;
int a[100]={0};
      scanf("%d\n",&n);
      while(n)
      {  ans=0;q=0;
         memset(a,0,sizeof(a));
         while(scanf("%d",&x)!=-1)

         {  if(x==0) break;
             else {ans++;a[ans]=x;}
         }
          for(i=1;i<=ans-1;i++)
          {for(j=i+1;j<=ans;j++)
              {  if(a[i]*2==a[j]||a[j]*2==a[i])
                  q++;
              }
         } printf("%d\n",q);
          n--;
      }return 0;
}

在小明曾经玩过的一种对号码的纸牌游戏(乐透)里,玩家必须从{1,2,……,49}中选择6个数。玩Lotto的一个流行策略是(虽然它并不增加你赢的机会):就是从这49个数中,选出k(k>6)个数组成一个子集S,然后只从S里拿出牌来玩几局游戏。例如,k=8,s={1,2,3,5,8,13,21,34},那么有28场可能的游戏:[1,2,3,5,8,13],[1,2,3,5,8,21],[1,2,3,5,8,34],[1,2,3,5,13,21],……,[3,5,8,13,21,24]。
读取数字k和一组数S,输出由S中的数组成的所有可能的游戏。
Input
输入数据有多组,每组一行,每行有多个整数,其中第一个整数为数字k,接下来有k个整数,即子集S。当k为0,输入结束。
Output
输出由S中的数组成的所有可能的游戏。每种游戏一行。
Sample Input
7 1 2 3 4 5 6 7
0
Sample Output
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
 {int n,i,i1,i2,i3,i4,i5,i6,k;
 int a[100]={0};
while(~scanf("%d",&n))
{   if(n==0)  break;
    for(i=1;i<=n;i++)
    {  scanf("%d",&a[i]);  }
    for(i1=1;i1<=n-5;i1++)
    { for(i2=i1+1;i2<=n-4;i2++)
    { for(i3=i2+1;i3<=n-3;i3++)
    {  for(i4=i3+1;i4<=n-2;i4++)
    {  for(i5=i4+1;i5<=n-1;i5++)
    {  for(i6=i5+1;i6<=n;i6++)
    {printf("%d %d %d %d %d %d\n",a[i1],a[i2],a[i3],a[i4],a[i5],a[i6]);
      }}}}}}

对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串,字符串的长度小于等于100。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{   int n,m,i;
   char a[100];
   scanf("%d\n",&n);
    while(n)
     {  m=0;memset(a,0,sizeof(a));
      scanf("%s",a);
      for(i=0;i<strlen(a);i++)
      {          if(a[i]<='9'&&a[i]>='0')
            m++;
      }
     printf("%d\n",m);
     n--; }

    return 0;}

在测试超大规模集成电路时,对给定的一个设计,专家要检测元件是否相互遮盖。一个元件可视为一个矩形,假设每个矩形都是水平排列的(边与x轴或y轴平行),所以长方形由最小的和最大的x,y坐标表示。
编程计算完全被覆盖的矩形个数。
Input
输入有多组长方形实例。对每组长方形,第一个数字是长方形的数量,然后是长方形的最小和最大x,y坐标(最小x,最大x,最小y,最大y)。
Output
对每组输入数据,输出一行,是被完全覆盖的长方形数量。
Sample Input
3
100 101 100 101
0 3 0 101
20 40 10 400
4
10 20 10 20
10 20 10 20
10 20 10 20
10 20 10 20
Sample Output
0
4

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
struct stu {int x1;int x2;int y1;int y2;}a[100];
bool cmp(stu a,stu b)
{return a.x1<b.x1;
}
int main()
{int j,i,n;while( scanf("%d",&n)!=-1){j=0;for(i=1;i<=n;i++){scanf("%d %d %d %d",&a[i].x1,&a[i].x2,&a[i].y1,&a[i].y2);}sort(a+1,a+n+1,cmp);for(i=1;i<n;i++){   if(a[i].x1!=a[i+1].x1){if((a[i+1].x1<a[i].x2)&&(a[i+1].y1<a[i].y2))j++;}else{if(a[i+1].y1<a[i].y2)j++;}}if(j>0) j=j+1;printf("%d\n",j);}return 0;
}

公司举办年会,为了活跃气氛,设置了摇奖环节。参加聚会的每位员工都有一张带有号码的抽奖券。现在,主持人依次公布 n 个不同的获奖号码,小谢看着自己抽奖券上的号码 num,无比紧张。请编写一个程序,如果小谢获奖了,请输出他中的是第几个号码;如果没有中奖,请输出 0。
Input
第一行一个正整数 n,表示有 n 个获奖号码,2<n≤100。
第二行包含 n 个正整数,之间用一个空格隔开,表示依次公布的 n 个获奖号码。
第三行一个正整数 num,表示小谢抽奖券上的号码。
1≤获奖号码,num<10000。
Output
一行一个整数,如果小谢中奖了,表示中奖的是第几个号码;如果没有中奖,则为 0。
Sample Input
7
17 2 3 4 9555 6 1
3
Sample Output
3
Hint
暴力
单组输入

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>
using namespace std
int main()
{   int n,i,sum,num=0;
int a[100];scanf("%d\n",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);}getchar();scanf("%d",&sum);for(i=1;i<=n;i++){if(a[i]==sum){printf("%d",i);num=i;break;}if(num==0) printf("0");return 0;
}

小林在 NOIP 比赛期间住在“新世界”酒店。和其他酒店不一样的是,这个酒店每天都有一个高能的数字 t,这个数字在楼层中是不会出现的,以 t=3 为例,则 3、13、31、33 等楼层是不存在的,楼层编号为 1,2,4,5,…所以实际上的 4 楼才是 3 楼。
已知小林预订了编号为 m 层的房间,并且当天高能数字是 t,现在他想知道房间所在的真实楼层是多少。
Input
一行两个整数 m 和 t,1≤m≤100000,0≤t≤9,保证 m 对 t 合法。
Output
一行一个整数,表示真实楼层。
Sample Input
14 3
Sample Output
12

#include <iostream>
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;int n,j,i,t,m,b;int a[100001];int main()
{scanf("%d %d",&m,&t);for(i=1;i<=m;i++){ b=i; j=0;while(i){n=i;i=i%10;if(i==t)j++;i=n/10;}i=b;if(j==0)a[i]=i;else a[i]=0;}j=0;for(i=1;i<=m;i++){if(a[i]==0)j++;}printf("%d\n",m-j);return 0;
}

C、O、W的顺序形式构成了一句他最喜欢的奶牛单词
“COW”。现在,他想知道有多少次 COW 出现在文本中。
如果 COW 内穿插了其他字符,只要 COW 字符出现在正确的顺序,小伟也不介意。甚至,他也不介意出现不同的 COW 共享一些字母。例如,CWOW 出现了 1 次 COW,CCOW 算出现了2 次 COW,CCOOWW 算出现了 8 次 COW。
Input
第 1 行为 1 个整数 N。
第 2 行为 N 个字符的字符串,每个字符是一个 C、O 或 W。
Output
输出 COW 作为输入字符串的字串出现的次数(不一定是连续的)。
提示:答案会很大,建议用 64 位整数(long long)。
Sample Input
6
COOWWW
Sample Output
6

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long k1,k2,i,j,n,str1[100010],str2[100010],sum;
char a[100010];
int main()
{scanf("%lld%s",&n,a);k1=0;k2=0;sum=0;for(i=0;i<n;i++){if(a[i]=='C') k1++;str1[i]=k1;}for(i=n-1;i>=0;i--){if(a[i]=='W') k2++;str2[i]=k2;}for(i=0;i<n;i++){if(a[i]=='O')sum=sum+str1[i]*str2[i];}printf("%lld\n",sum);return 0;
}

东北林业大学Acm培训大一(三)(暴力枚举)相关推荐

  1. 大一寒假培训(三)——暴力枚举及妙用

    大一寒假培训(三) 经过两天的培训之后,第三天也到来了.今天讲的是暴力枚举.好像没什么可讲的(悄咪咪地说) 接下来还是今天的练习 nefu 8 二倍的问题 Description 给定2到15个不同的 ...

  2. acm大一寒假集训--暴力枚举类

    题目来源于东北林业大学OJ 东北林业大学OJ,点击进入

  3. 大一寒假训练:暴力枚举

    一.暴力枚举思想: 其实就是直接循环遍历,利用计算机强大的计算性能,也就是俗称的"一个个试". 二.部分练习&题解: *2/5/6题较难: 1.NEFU OJ:大乐透 这题 ...

  4. acm新手小白必看系列之(3)——暴力枚举精讲及例题

    acm新手小白必看系列之(3)--暴力枚举精讲及例题 暴力枚举说白了就是列举所有情况,然后一个一个排查. 这节多说无益直接上题(这节假的精讲) 1·大乐透 在小明曾经玩过的一种对号码的纸牌游戏(乐透) ...

  5. 新手入门刷题(专题三)暴力枚举

    新手入门刷题(专题三)暴力枚举--->持续更新 4.14 统计方形(数据加强版) 题目描述 有一个 n×m 方格的棋盘,求其方格包含多少正方形.长方形(不包含正方形). 输入格式 一行,两个正整 ...

  6. 寒假集训三(暴力枚举)2020.01.02(11题)

    寒假集训三(暴力枚举)id :521 Problem:A 二倍的问题 Description 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍.比如给 ...

  7. 啊哈算法——第三章:暴力枚举

    第三章:暴力枚举 枚举的思想不必多说,此处仅引数中两例. 火柴棍等式 #include <iostream> using namespace std; const int maxn = 1 ...

  8. 搜索初步-暴力枚举总结与举例

    暴力枚举 一.过程: 暴力枚举是将所有情况都进行枚举出,并找到自己的目标的值的过程. 二.方法: 1.用多重循环嵌套,用来寻找在一个数组中的一个值是否与其他的一个或多个值相关. (这里的相关表示为加减 ...

  9. 林大ACM培训心得day4

    林大ACM培训心得day4 学会用笔计算解题 一.最大公约数(gcd) 求最大公约数有三种办法 1.暴力枚举法,代码如下: int a,b;int gcd=0; cin>>a>> ...

最新文章

  1. linux svn 启动两个库,linux – 在一个存储库上运行两个svnserve实例是安全的,还是只有一个?...
  2. EXT.NET高效开发(一)——概述
  3. Linux命令(11)—— 给文件增加和减少权限chomod命令
  4. Shell——常用工具(cut、sed、awk、sort)
  5. java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)
  6. 安卓10可用的性能监视器_iPad 秒变监视器,无线图传设备真的有用吗?
  7. php中创建函数的正确方法,如何在PHP中创建一个函数
  8. POJ-2480 Longge's problem 欧拉函数
  9. 用汇编语言与C语言实验其他排序,微机原理实验报告冒泡排序
  10. 部署到gcp_Linux基础架构学习 - 使用GCP托管云解决方案 - Day09
  11. 数据结构(王道计算机考研笔记)
  12. JavaScript到底应该怎么用?
  13. ATM+bzoj+Trajan算法+spfa求最短路
  14. MogaFX-M1日
  15. 进化树构建的方法原理及检验
  16. English trip V1 - 23. Big and Bigger Teacher:Corrine Key: adjective comparisons 形容词 比较级
  17. jMetal学习笔记(二)-NSGAii源码解读
  18. input限制只能输入数字,限制输入数字长度或者大小
  19. 【抓包工具】配置:Fiddler 配置手机/平板抓包 https
  20. [Error Code: 904, SQL State: 42000] ORA-00904 : 标识符无效

热门文章

  1. 一文读懂高速互联的阻抗及反射
  2. Jquery 中 ajaxSubmit 、ajaxForm使用讲解
  3. linux查看ihs进程和端口,IHS日志查看
  4. QtCreator使用CMake构建项目时jom Error 2问题
  5. 《机房收费系统》软件需求说明书
  6. 【HDOJ】5007 Post Robot_天涯浪子_新浪博客
  7. 深度学习综述Yann LeCun
  8. Windows11 任务管理器的几种打开方式
  9. 智慧工地管理平台系统厂家哪家强|喜讯科技
  10. 日程信息管理系统设计与实现C 语言论文,C课设个人日程学习管理系统.docx