NYOJ - 19 - 배열 잘 하 는 소명 (STL - set + 풀 배열)

제목 설명:
샤 오 밍 을 묘사 하 는 것 은 매우 총명 하고 배열 계산 에 도 매우 뛰어나다.예 를 들 어 샤 오 밍 에 게 숫자 5 를 주면 그 는 즉시 1 - 5 를 사전 순서에 따라 모두 배열 할 수 있다. 만약 에 네가 그 를 난처 하 게 하고 싶다 면 이 5 개의 숫자 중에서 몇 개의 숫자 를 골 라 서 그 가 계속 전부 배열 하도록 한다. 그러면 너 는 틀 렸 다. 그 는 똑 같이 잘 한다.배열 에 능 한 샤 오 밍 이 맞 는 지 검증 하 는 프로그램 이 필요 하 다.첫 번 째 줄 의 입력 정수 N (1 조 테스트 데이터 첫 줄 에 두 개의 정수 n m (1 출력 은 1 - n 에서 m 문 자 를 선택 하여 전체 배열 을 하고 사전 순서에 따라 모두 출력 하 며, 각 배열 은 한 줄 을 차지 하 며, 각 조 의 데이터 간 에 경 계 를 나 눌 필요 가 없다.
제목 사고방식:
1 - n 의 전체 배열 을 구 한 후에 앞의 m 비트 로 구 성 된 수 를 구하 고 set 에 추가 합 니 다 (자동 무게 + 정렬). 마지막 으로 set 용 기 를 옮 겨 다 니 며 요 소 를 출력 하면 됩 니 다.
제목 코드:
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
int N, n, m;
int a[10];
int main(){
	set st;
	cin>>N;
	while(N--){
		cin>>n>>m;
		for(int i = 0; i < n; i++) a[i] = i+1;
		st.clear();
		do{
			int temp = 0;
			for(int i = 0; i < m; i++){
				temp = temp * 10 + a[i]; //  m    		
			}
			st.insert(temp);
		}while(next_permutation(a, a+n)); //     
		//      
		set::iterator it;
		for(it = st.begin(); it != st.end(); it++){
			cout<

좋은 웹페이지 즐겨찾기