社区讨论

60分求调

P4305[JLOI2011] 不重复数字参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo2ybczr
此快照首次捕获于
2023/10/23 21:46
2 年前
此快照最后确认于
2023/10/23 21:46
2 年前
查看原帖
样例过了,但是60分
CPP
#include <cstdio>
#include <set>
#include <iostream>
using namespace std;
set<int> st;  //用于判断是否重复
int t;  //题目,T组数据
int num[10000][10000];   
/*最终输出内容,左边用于对T组数据不同答 案进行排序
右边用于对每一个T组的数据进行存放*/
int c[51];        //存放T组不同组数据的长度
int tmp=0;    
//T组数据,但是由于T是从大到小的,所以tmp就是从小到大的T
int cnt;
//每T组数据的内容的长度
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>cnt;
		c[tmp]=cnt;    //记录第T组数据的长度
		int y=0;      
		for(int i=0;i<cnt;i++)
		{
			int x;
			scanf("%d",&x);
			if(st.count(x))//判断是否重复
        {
              --c[tmp];
              continue;   
            }//如果是,直接进入下一步
			else{     //暂时没重复
				st.insert(x);   //感觉备案
				num[tmp][y]=x;  //把暂时没有的数,存进去
				y++;
			}
		}tmp++;
		st.clear();//防止数据出错
		y=0;
	}
	for(int i=0;i<=tmp;i++)
	{
		int x=c[i];
		for(int j=0;j<x;j++)
		{
			printf("%d ",num[i][j]);
		}cout<<endl;
	}return 0;
    ```

回复

0 条回复,欢迎继续交流。

正在加载回复...