卫星


粉刷匠



这两题我都用 O(n2) 算法(就大模拟呗)一道五个TLE,另一道三个TLE还有四个因为布尔二维数组不够而产生的RE,给大家看看我的代码:
//第一题
#include<bits/stdc++.h>
using namespace std;
int a[10001];bool f[10001];
int main(){
// freopen("star.in","r",stdin);
// freopen("star.out","w",stdout);
int n,dqwz=1;cin>>n;a[1]=f[1]=1;
for(int i=2;i<=n;i++){
int jgs=0;
while(jgs<i){dqwz==n?dqwz=1:dqwz++;if(!f[dqwz])jgs++;}
a[dqwz]=i;f[dqwz]=1;
}
for(int i=1;i<=n;i++)cout<<a[i]<<' ';
// fclose(stdin);
// fclose(stdout);
}
//第二题
#include<bits/stdc++.h>
using namespace std;
bool maps[1001][100001];
int main(){
// freopen("paint.in","r",stdin);
// freopen("paint.out","w",stdout);
int n,m,k,ans=0;
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;i++){
int x,y,z;scanf("%d%d%d",&x,&y,&z);
for(int i=(x?n:m);i>=1;i--)maps[(x?i:y)][(x?y:i)]=z;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(maps[i][j])ans++;
cout<<ans;
// fclose(stdin);
// fclose(stdout);
}