一道简单题

关键是要排序,如AABBBBC,然后可比较,当相同时将当前位置向后移,而不增加统计数目,不同时增加统计数目,再退出第二循环,这样就可以统计了。

 1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 int main()
6 {
7 int n,m,i,j;
8 char **a;
9 cin>>n;
10 if(n<1||n>1000)
11 cin>>n;
12 else{
13 a=new char*[n];
14 for(i=0;i<n;i++){
15 a[i]=new char[20];
16 cin>>a[i];
17 strupr(a[i]);
18 }
19 for(i=0;i<n-1;i++)
20 for(j=0;j<n-i-1;j++)
21 if(strcmp(a[j],a[j+1])>0)
22 swap(a[j],a[j+1]);
23 m=1;
24 for(i=0;i<n;i++)
25 for(j=i+1;j<n;j++)
26 if(strcmp(a[i],a[j])!=0){
27 m++;
28 break;
29 }
30 else
31 i++;
32 }
33
34 cout<<endl<<m<<endl;
35 for(i=0;i<n;i++)
36 delete []a[i];
37 delete[] a;
38 return 0;
39
40 }

View
Code

时间: 2024-08-10 00:00:13

一道简单题的相关文章

北方多校 又是一道简单题

又是一道简单题 12000ms 65536K 给出一棵有根树,每次查询给出两个节点 u 和 v,假设节点 f 是u,v的最近公共祖先,请查询以 f 为根的子树中,不在 u 到 v 这条链上且标号最小的节点. 输入格式 第一行输入正整数 T(T <= 30),表示共有T组输入数据. 对于每组数据,第一行输入两个正整数 n,m(n <= 50000,m <= 50000),表示节点数和询问数,节点编号 1 到 n,其中 1 是根节点. 接下来 n - 1 行,每行输入两个正整数u,v,表示标

一道简单题——A Simple Task

就像这道题的题目一样,真的是一个简单的题目,题意就是一句话:给一个数N求符合公式N = O * 2P的 O 和 P. 下面我们就一起看一下题吧. Description Given a positive integer n and the odd integer o and the nonnegative integer p such that n = o2^p. Example For n = 24, o = 3 and p = 3. Task Write a program which fo

HNNU 11662 又一道简单题【湖南省第十一届大学生计算机程序设计竞赛,模拟,暴力】

原题链接:http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11662&courseid=0 由于每次只改变一个数字,n也只是4位数,可以暴力,也可以BFS AC代码: #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace std; bool

NBUT 1647 又一道简单题

题目: Description 输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它 变成一个完全平方数(不能把首位修改成0).比如 n=7844,有两种方法:3844=62^2和 7744=88^2. Input 输入第一行为整数 T (1<=T<=1000),即测试数据的组数,以后每行包含一个整数 n (1000<=n<=9999). Output 对于每组数据,输出恰好修改一个数字,把 n 变成完全平方数的方案数. Sample Input 2

L1-1. 这是一道简单题

题目: 1 #include <cstdio> 2 using namespace std; 3 long long z[105],m[105]; 4 long long gcd(long long a,long long b) //求分母: 5 { 6 long s=a,t=b; 7 long long c = a%b; 8 while(c){ 9 a = b; 10 b = c; 11 c = a % b; 12 } 13 return s*t/b; 14 } 15 long long g

一道简单的递推题(快速幂+矩阵乘法优化+滚动数组)

问题 F: 一道简单的递推题 时间限制: 1 Sec  内存限制: 128 MB提交: 546  解决: 48[提交][状态][讨论版] 题目描述 存在如下递推式: F(n+1)=A1*F(n)+A2*F(n-1)+...+An*F(1) 求第K项的值对1000000007取模的结果 输入 单组测试数据 第一行输入两个整数 n , k (1<=n<=100,n<k<=10000000000) 第二行输入 n 个整数 F(1)   F(2)   ...   F(n) 第三行输入 n

一道简单的数据结构题 栈的使用(括号配对)

一道简单的数据结构题 发布时间: 2017年6月3日 18:46   最后更新: 2017年6月3日 18:51   时间限制: 1000ms   内存限制: 128M 描述 如果插入"+"和"1"到一个括号序列,我们能得到一个正确的数学表达式,我们就认为这个括号序列是合法的.例如,序列"(())()", "()"和"(()(()))"是合法的,但是")(", "(()&quo

从一道简单的dp题中学到的...

今天想学点动态规划的知识,于是就看了杭电的课件,数塔问题啊,LCS啊都是比较经典的动规了,然后随便看了看就开始做课后练习题... HDOJ 1421 搬寝室 http://acm.hdu.edu.cn/showproblem.php?pid=1421 题目大意:从n(n <= 2000)个数中选出k对数(即2*k个),使它们的差的平方和最小. 例如:从8,1,10,9,9中选出2对数,要使差的平方和最小,则应该选8和9.9和10,这样最小,结果为2 因为知道是dp的题,先建个dp[][]数组,然

每天一道Java题[3]

问题 为什么在重写equals()方法的同时,必须重写hashCode()方法? 解答 在<每天一道Java题[2]>中,已经对hashCode()能否判断两个对象是否相等做出了解释.equals()方法与hashCode()方法的关系如下: 如果两个对象的hashCode()返回值不一样,则equals()返回的结果必为false. 如果两个对象的hashCode()返回值一样的时候,equals()返回的结果未知. 如果两个对象的equals()返回的结果为true,则两个对象的hashC