题目:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能达到前一发的高度。
某天,雷达捕捉到敌国的导弹来袭,如果系统数量太少,将导致有可能不能拦截所有的导弹。所以,根据雷达捕捉到的导弹高度,需要预先准备相应数量的拦截系统。
比如导弹的高度依次为:
5 3 4 2 4 1
则一个拦截系统的第一发炮弹必须打到高度5的地方,第二发炮弹打到高度3的地方。
但第三发炮弹打不到高度4的地方(因为每一发炮弹不能达到前一发的高度),所以要使用第二套拦截系统。
第二套拦截系统发射的炮弹高度打到4和2的高度(实际上,要拦截高度为2的炮弹,使用第一套拦截系统或者第二套都可以),
第三套拦截系统发射的炮弹高度打到4和1的高度(实际上,要拦截高度为1的炮弹,三套拦截系统都可以)。
因此,总共需要三套拦截系统。
再比如导弹的高度依次为:
5 3 4 2 3 1
则一个拦截系统的第一发炮弹必须打到高度5的地方,第二发炮弹打到高度3的地方。
但第三发炮弹打不到高度4的地方(因为每一发炮弹不能达到前一发的高度),所以要使用第二套拦截系统。
第二套拦截系统发射的炮弹高度打到4的高度。
再要拦截高度为2的炮弹,使用第一套拦截系统或者第二套都可以,但考虑到后面还需要拦截炮弹,我们这里使用第一套拦截系统(为什么不能用第二套,自己想啦)。
再要拦截高度为3的炮弹,我们使用第二套拦截系统。
再拦截高度为1的炮弹,第一套和第二套系统都可以,我们就使用第二套吧。
因此,总共仅需要两套拦截系统,第一套拦截的是5 3 2,第二套拦截的是4 3 1。
请根据给定的高度数据,帮助计算一下最少需要多少套拦截系统。
个人总结:
#include<iostream>
using namespace std;
int main() {
int total;
while (cin >> total) {
while (total > 0) {
total–;
int num, ans = 0;
cin >> num;
int* a = new int[num]();
for (int i = 0; i < num; i++) {
cin >> a[i];
}
for (int i = 0; i < num; i++) {
if (a[i] != 0) {
ans++;
int t = a[i];
a[i] = 0;
for (int j = i + 1; j < num; j++) {
if (t > a[j]&&a[j]!=0) {
t = a[j];
a[j] = 0;
}
}
}
}
cout << ans << endl;
}
}
}
题目:明明这次又碰到问题了:
给定一个正整数N,明明的爸爸让他输出一个以Z开始的菱形,以后依次为Y,X…,
比如当N等于1的时候输出图形:
Z
当N等于2的时候,输出图形:(Y前没有空格,Z、X和W前一个空格)
Z
Y X
W
当N等于3的时候,输出图形(Z前两个空格,Y、X前一个空格,W前没有空格……):
Z
Y X
W V
U T
S
明明发现当N很大的时候就不是很容易了,所以找到了你,希望你编写一个程序帮助他
明明的问题可以归结为:输入一个正整数N,输出一个以Z开始的菱形,以后依次为Y,X…。
请尝试定义函数,该函数的功能是输出以上图形的一行。
个人总结:
#include<iostream>
using namespace std;
char prtp(char a, int r,int c) {
for (int i = 1; i <= c; i++) {
if (i == r || i == c) {
cout << a;
a–;
}
else cout << " ";
}
cout << endl;
return a;
}
int main() {
int n;
while (cin >> n) {
char a = 'Z';
int r = n, c = n;
for (int i = 1; i <= n; i++){
a = prtp(a, r, c);
r–;
c++;
}
r += 2;
c -= 2;
for (int i = 1; i < n; i++) {
a = prtp(a, r, c);
r++;
c–;
}
cout << endl;
}
return 0;
}
题目:明明的爸爸常用玩游戏的方法来激发明明对几何学的兴趣。这天明明的爸爸和明明又玩起了有关三角形的游戏。
明明爸爸对明明说:“我们能不能构造一个周长为15的三角形?” “太简单了,”明明说道:“三条边长都是5的三角形,它的周长不就是15吗?” “明明真聪明,算得真快。”明明爸爸接着说:“可是,我不想要三条边都相等的三角形哪!” 明明大眼睛一转,说道:“那也好办啊,我只要对这个等边三角形的一条边减去一个数,再把这个数加到另一条边上就可以得到一个新的周长为15的三角形。例如,在第一条边上减去1,在第二条边上加上1,这样不就可以得到一个周长为15的新的三角形了吗?” “哇,明明太聪明了”爸爸称赞道。“对,如果把第一条边上减去的1加到第三条边上去不就又可以得到周长为15的另外一个新三角形了吗?”爸爸模仿着明明的方法和语气。 “不对呀,爸爸。你构造的三角形和我构造的三角形是同样的三角形。爸爸你看,我的三角形三条边分别长为4、6、5,而你的三角形三条边分别长为4、5、6,将三条边按其边长排序后都得到4、5、6,所以它们是同一个三角形,不是两个不同的三角形。” “啊,还是明明聪明。那还有没有其他周长为15的三角形吗?” “当然有啦。三条边边长分别为4、4、7的三角形,它的周长就是15,不过你可能不喜欢它,因为它有两条边的边长相等。” 明明和爸爸玩了一下午这样的三角形游戏,明明一共又构造了另外两个他认为他爸爸喜欢的三角形,即边长分别为2、6、7的三角形和边长分别为3、5、7的三角形。
晚上,明明躺在床上还在思考:如果周长不是15,而是90,那么爸爸喜欢的三角形有多少个呢?
明明的问题可以归结为:根据一个正整数n(3 ≤ n ≤ 100),要求统计出同时满足下列条件的三角形的个数:
边长都是整数。
周长为n。
边长两两不相等。
之所以有上述第一个条件,那是因为明明只知道正整数,没有学过分数和实数,因此他构造出的三角形的边长均为正整数。 请你写一个程序来帮助明明计算出他认为他爸爸喜欢的三角形的个数。
个人总结:
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int c;
while (cin >> c) {
int cnt = 0;
int a=0;
for (int i = 1; i < c/3; i++) {
for (int j = i+1; j <= (c – i)/2; j++) {
a = c – i – j;
if (i + j > a&&a!=i&&a!=j) {
cnt++;
}
}
}
cout << cnt << endl;
}
return 0;
}
Translation:
Ubiquitous computing is a post-desktop model of human-computer interaction in which information processing is integrated into everyday objects and activities. For dailyactivities, people may engage in using many pervasive devices simultaneously. They may not even be aware of the existence of the interactive devices. Although the idea is simple, its application is difficult. If all objects in the world were equipped with minuscule identifying devices, daily life on our planet could undergo a major transformation.
普适计算是一种后桌面时代的人机交互模式,在这种模式中,信息处理被整合到日常物品和活动中。在日常活动中,人们可能会同时使用许多普及型设备,甚至可能没有意识到这些交互设备的存在。虽然这个想法很简单,但它的应用却很困难。如果世界上所有的物体都配备了微小的识别装置,那么我们星球上的日常生活可能会发生重大变革。
- ubiquitous 无处不在的
- post-desktop 后桌面的
- pervasive 普遍的
- minuscule 微小的
The IoT cannot be realized without systems design and engineering, and user interfaces. Contemporary human-computer interaction models, whether command-line, menu-driven, or GUI-based, are inappropriate and inadequate to meet ubiquitous computing demands. The natural IoT paradigm appropriate to a ubiquitous computing world has yet to emerge.Contemporary devices that lend support to ubiquitous computing include smartphones, tablet computers, sensor networks, RFID tags, smart cards, GPS devices, and others.
没有系统设计与工程以及用户界面,物联网就无法实现。当代的人机交互模式,无论是命令行式、菜单驱动式还是基于图形用户界面的,都不适合且不足以满足普适计算的需求。适合普适计算世界的自然物联网范式尚未出现。当前支持普适计算的设备包括智能手机、平板电脑、传感器网络、射频识别标签、智能卡、GPS等。
- IoT 物联网
- command-line 命令行式
- GUI-based 基于图形用户界面
- paradigm 范例
- RFID tags 射频识别标签
In ubiquitous computing, the IoT provides a network of sensor-or radio-connected devices that can be uniquely identified and located in the cyber-physical space. This IoT is mostly wirelessly connected as a self-configuring network of radio-frequency tags,low-cost sensors, or e-labels. The term "IoT" combines RFIDtechnology with today's IPv6-based Internet technology. All things (objects) have IP addresses, which can be uniquely identified. The IP-identifiable objects are readable, recognizable,locatable, addressable, and/or controllable via the Internet, aided by RFID, Wi-Fi, ZigBee, mobile networks, and GPS.
在普适计算中,物联网提供了一个由传感器或无线电连接的设备组成的网络,这些设备能够在信息物理空间中被唯一识别和定位。物联网大多是通过无线方式连接的,作为一个由射频标签、低成本传感器或电子标签组成的自配置网络。“物联网”这一术语将射频识别技术与当今基于IPv6的互联网技术相结合。所有事物(物体)都有IP地址,从而能够被唯一识别。借助射频识别、Wi-Fi、紫蜂协议、移动网络和GPS,这些可通过IP识别的物体能够通过互联网被读取、识别、定位、寻址和/或控制。
- addressable 可寻址的
- ZigBee 紫峰协议





