首页 > POJ 1552 Doubles (C++ STL set使用)

POJ 1552 Doubles (C++ STL set使用)

题目:

题意:题意:给出几个正数(2~15个),然后就是求有这些数字的2倍有没有和原先的正数相同的,求出有几个,没有就是0.

分析:水题。用数组解决,开一个数组存正数,另开一个数组用来存这些数的2倍,接着就搜索,然后注意一下结束的时候怎么处理就行。

 

c普通方法:

 1 #include 
 2 #include
 3 #include
 4 #include
 5 #include
 6 #include
 7 #include
 8 #include
 9 using namespace std;
10 
11 int main()
12 {
13     int i,j,a[1000],b[1000],sum,t,x;
14     while(cin>>t&&t!=-1)
15     {
16         sum=0;
17         x=0;
18         a[x]=t; b[x++]=2*t;
19         while(cin>>t&&t)
20         {
21             a[x]=t; b[x++]=2*t;
22         }
23         for(i=0; i)
24         for(j=0; j)
25         {
26             if(b[i]==a[j])
27             {
28             sum++;
29             break;
30             }
31         }
32         cout<endl;
33     }
34     return 0;
35 }

 

STL  set知识点 :http://blog.sina.com.cn/s/blog_779cf3410101389s.html 

http://blog.sina.com.cn/s/blog_6fe0eb190100s7qn.html

http://blog.sina.com.cn/s/blog_60e96a410100g0k9.html

http://blog.csdn.net/lansetiankong_yiyi/article/details/5816362

 

//set集合容器,实际是一棵树,每棵子树的左结点小于根节点的值,

//而根节点的值小于右节点的值,整棵树可以用中序遍历得到一个

不允许元素重复, 如果有重复元素用multiset,multiset的用法与set类似。

) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素

2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数

3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)

默认情况下,set元素按其所属型别的less-than进行排列, 

默认从小到大排序。 

 1 #include
 2 #include<set>
 3 using namespace std;
 4 int main()
 5 {
 6     set<int> s;
 7     set<int>::iterator t;
 8     int temp;
 9     cin>>temp;
10     while(temp != -1)
11     {
12         s.clear();
13         while(temp != 0)
14         {
15             s.insert(temp);
16             cin>>temp;
17         }
18         int c = 0;
19         for(t = s.begin(); t != s.end(); t++)
20         {
21             if(s.count((*t)*2) != 0)
22                 c++;
23         }
24         cout<endl;
25         cin>>temp;
26     }
27 }

 

 

 

转载于:https://www.cnblogs.com/bfshm/p/3231116.html

更多相关:

  • 关于点云的分割算是我想做的机械臂抓取中十分重要的俄一部分,所以首先学习如果使用点云库处理我用kinect获取的点云的数据,本例程也是我自己慢慢修改程序并结合官方API 的解说实现的,其中有很多细节如果直接更改源程序,可能会因为数据类型,或者头文件等各种原因编译不过,会导致我们比较难得找出其中的错误,首先我们看一下我自己设定的一个场景,...

  • /* 使用正态分布变换进行配准的实验 。其中room_scan1.pcd room_scan2.pcd这些点云包含同一房间360不同视角的扫描数据 */ #include #include #include #include

  • #include #include #include #include ...

  • #include #include #include #include #include #include...

  • #include #include #include #include int main (int argc,...

  • 栈stack:stack 后入先出(LIFO) q.top()获取栈顶元素(并不删除)q.pop()删除栈顶元素q.push(x)向栈中加入元素q.empty()判断栈是否为空 队列queue:先入先出(FIFO)   q.front()获取队首元素(并不删除)q.pop()删除队首元素q.push(x)向队列中加入元素q....

  • resize(),设置大小(size); reserve(),设置容量(capacity); size()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存。 打个比方:正在建造的一辆公交车,车里面可以设置40个座椅(reserve(40);),这是它的容量,但并不是说它里面就有了40个座椅,只能说...

  • v-for="(index,$i) in total" :key="$i":style="{left:`${itemWidth*((index-1)%rowItemCount)}px`,top:`${itemHeight*(Math.ceil(index/rowItemCount)-1)}px`}" //total是显示总数量 //l...

  •   技巧一(推荐指数★★★★★) 采用top、right、bottom、left,可以不在乎父元素的宽度和高度,对GPU损耗低于技巧三,但是对浏览器内存的消耗高于技巧三 .子元素 {/*父元素需要position: relative|absolute;*/position: absolute;margin: auto;to...

  • 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack...