作业帮 > 数学 > 作业

2009年南海区青少年信息学奥林匹克竞赛复赛试题(初中组)

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/10/06 18:51:08
2009年南海区青少年信息学奥林匹克竞赛复赛试题(初中组)
第二题 负进制
(negii.pas/cpp)
学习信息学的人都熟悉 2 进制,但有没有人想过 -2进制!那样的数字就不需要符号了!
2进制从低位到高位--即从右向左--的位权是1、2、4、8、16、.
-2进制的从右向左的位权当然就是1、-2、4、-8、16、.
-2进制是可以表示任何整数的.如:
1,110,111,100,101,11010,11011,11000,11001,...
表示1,2,3,4,5,6,7,8,9,.

11,10,1101,1100,1111,...
则表示-1,-2,-3,-4,-5,.
现在给你一个十进制的整数n,请求出它的-2进制数.
数据范围:
-2,000,000,000≤n≤2,000,000,000
输入文件 ngeii.in:
只一行,一个十进制整数 n.
输出文件 negii.out:
一个-2进制数.如果数字不为0,不能有前导0.
样例:
输入
-13
输出
110111
从右向左:
1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13
第三题 比萨
(pizza.pas/cpp)
NH的最大比萨店为即将来临的节日准备了 T 种不同加味的原料,但考虑到NH人的口味和其它一些因素,原料的使用有 N 种限制.
T种不同原料的编号为1..T.一个限制如“5 3”即表示5号和3号加味原料不能同时使用.如此,此时使用三种原料3,5,6的比萨是不允许的.
现在请你帮忙计算在上面条件下,最多可以制作多少不同的比萨(包括不添加任何加味原料的).
数据范围:
1≤T≤20
1≤N≤52
输入文件 pizza.in:
第一行:两个整数:T 和 N.
下面有N行:每行表示一种限制.每行的第一个整数 Z(1≤Z≤ T)表示这行后面有Z个表示原料编号的整数,这些原料不能同时出现在一个比萨中.
输出文件 pizza.out:
只一行,一个整数表示在上面的限制下最多可以制成多少种不同比萨.
样例:
输入
6 5
1 1
2 4 2
3 3 2 6
1 5
3 3 4 6
无加料;2;
2和3;2和6;
3;3和4;
3和6;4;
4和6;6.
输出10
i.cpp
#include
using namespace std;
int main()
{
ifstream in("bri.in");
ofstream out("bri.out");
int I, ans = 0;
in >> I;
for (int i = 1; i