c++:Hackerank:获取输入时出错
c++:Hackerank:Error in taking input
这是我问题的一部分。我尝试了很多次,但没有得到答案
问题陈述
您将获得参加ACM-ICPC世界总决赛的N人名单。他们每个人都精通一个主题,或者他们不是。找出 2 人团队可以知道的最大主题数。并找出有多少团队可以知道最大主题数。
注意 假设 a、b 和 c 是三个不同的人,则 (a,b) 和 (b,c) 计为两个不同的团队。
输入格式
第一行包含两个整数 N 和 M,由单个空格分隔,其中 N 表示人数,M 表示主题数量。N行紧随其后。每行包含一个长度为 M 的二进制字符串。如果第 i 行的第 j 个字符为 1,则第 i 个人知道第 j 个主题;否则,他不知道这个话题。
约束
2≤N≤500
1≤M≤500
输出格式
在第一行,打印 2 人团队可以知道的最大主题数。在第二行,打印可以知道最大主题数的 2 人团队的数量。
示例输入
4 5
10101
11100
11010
00101
示例输出
5
2
解释
(1, 3)和 (3, 4) 知道所有 5 个主题。因此,一个 2 人团队知道的最大主题是 5,只有 2 个团队可以实现这一点。
这是我工作的一部分。任何线索我怎样才能让它工作
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, m, max = 0, max1 = 0, count = 0;
cin >> n >> m; //for input of N and M
int a[n][m];
for (int i = 0; i<n; i++) //for input of N integers of digit size M
for (int j = 0; j<m; j + >>
cin >> a[i][j];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
max = 0;
for (int k = 0; k<m; k++)
{
if (a[i][k] == 1 || a[j][k] == 1) max++;
cout << k;
if (k = m - 1 && max>max1) max1 = max;
if (k == m - 1 && max == max1) count++;;
}
}
}
cout << max1 << endl << count;
return 0;
}
我认为采用我的输入逻辑的方式是错误的,你能帮帮我吗?我从 5 天开始就陷入这个问题。
请只帮助我如何输入以及如何读取整数的数字。
我没有编译器,所以那里可能有一两个语法,但逻辑在纸上是贯穿的。
构建存储:
std::cin >> n >> m; //for input of N and M
std::vector<std::vector<bool>>list(n,std::vector<bool>(m, false));
加载存储:
char temp;
for (int i = 0; i < n; i++) //for input of N integers of digit size M
{
for (int j = 0; j < m; j++)
{
std::cin >> temp;
if (temp == 1)
{
list[i][j] = true;
}
}
}
运行算法
for (int a = 0; a < n; a++)
{
for (int b = a+1; b < n; b++)
{
int knowcount = 0;
for (int j = 0; j < m; j++)
{
if (list[a][j] | list[b][j])
{
knowcount ++;
}
}
if (knowcount > max)
{
groupcount = 1;
max = know;
}
else if(knowcount == max)
{
groupcount ++;
}
}
}
你的输入方法错误。根据您的方法,输入必须像这样给出(各个数字之间有空格):
1 0 1 0 1
1 1 1 0 0
1 1 0 1 0
0 0 1 0 1
只有这样,创建矩阵才有意义。但是由于问题中的格式在同一行中的数字之间不包含任何空格,因此此方法将失败。考虑到测试用例,您可能想将"N"个数字存储在一维整数数组中,但请记住约束("M"可以大到 500,int 甚至无符号长整 int 数据类型不能存储这么大的数字)。
- 读取文件的最后一行并输入到链接列表时出错
- 查找大输入的位数总和时出错?
- 如何删除已输入的书以及如何使标题,语言和名称在上面放置空格不会出错?
- 当使用 std::CIN 输入结构时,它会出错
- 使用 Visual Studio 代码读取 C++ 中的输入流时出错
- 在C++中使用istringstream读取输入时出错
- 如果我决定输入 (1 2) 而它要求 x,为什么我的输出会出错,但如果我输入 (12) 工作正常
- 确定输入"conscalc: calc"的类型时出错。不能联合编码器。具有不同字段集的结构类型
- C++:使用 fgets() 读取字符输入时出错
- 这个查找查询是否出错,因为我输入的数字太大
- 尝试重复读取输入会出错
- C++输入重定向导致文件参数工作时出错
- 尝试从 csv 文件输入大量数据时出错
- 在比较特定输入中的程序的数组中出错
- 获取 ADC 输入时出错
- 使用 swig 时出错:输入 (1) 中的语法错误
- 使用 FFMPEG 将每个输入图像转换为 H264 编译时出错,该图像在 MevisLab 中运行的 Visual St
- 将字符串数组作为输入时出错
- 迭代映射以获取输入时出错
- 保护输入和输出文件描述符时出错