c++ - 我需要有关 cpp 中奇怪的时间限制超出错误的帮助
问题描述
所以当我把它的输出放在一个向量中时,这个代码被接受了
#include <iostream>
#include<vector>
using namespace std;
int main(){
int t; cin >> t;
while(t--){
vector<int>v;
int n,k; cin >> n >> k;
for(int i=0;i<n;i++){
int x; cin >> x;
if(x%k==0) v.push_back(1);
else v.push_back(0);
}
for(auto x:v) cout <<x <<"";
cout << endl;
}
return 0;
}
但是当我直接打印时,这段代码给出了超出时间限制的错误
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
int t;
cin>>t;
while(t--)
{
ll k,d;
int n,i;
cin>>n>>k;
for(i=0;i<n;i++)
{
cin>>d;
if(d%k==0)
cout<<"1";
else
cout<<"0";
}
cout<<"\n";
}
}
你能说出为什么吗?(比赛现已结束)这是一个问题,以防万一
编辑:1 我使用 int 而不是 long long 以及 printf 以及 cin.tie(NULL) 东西,但仍然无济于事
解决方案
在 for 循环体中使用 cout 的实现肯定会在 cout 输出上出现瓶颈,特别是考虑到模运算相比之下非常便宜。
请参阅以下问题作为参考:
这样的事情会更好:
#include <bits/stdc++.h>
#include <vector>
using namespace std;
#define ll long long int
int main()
{
int t;
cin>>t;
while(t--)
{
ll k,d;
int n,i;
cin>>n>>k;
std::vector<bool> r(n);
for(i=0;i<n;i++)
{
cin>>d;
if(d%k==0)
r[i] = true;
}
for(auto i : r)
cout<<(i ? '1' : '0')<<endl;
cout<<"\n";
}
}
推荐阅读
- python - Python 多处理:工作池与进程
- php - 在 laravel 中存储数组值
- laravel - 如何配置单独的 Laravel 和 Vuejs 应用程序?
- python-3.x - 如何减小 numpy.ndarray 的形状?
- java - 返回类型 int 与 java 中的长错误不兼容
- python - TypeError: 'NoneType' object is not iterable - 但似乎仍在遍历列表?
- excel - 如何使用变量设置 OLEObject 名称?
- javascript - Chart.js 通过可视化代码不显示图表
- regex - 如何删除第二列记事本++?
- sqlplus - sqlplus 为 ACCEPT 命令提供参数