Codeforces 724 B 배치 정렬(폭력 매 거)

3922 단어 ACM
제목 링크:http://codeforces.com/problemset/problem/724/B
제목 대의:n*m 의 행렬 을 드 리 겠 습 니 다.매번 줄 마다 두 개의 수 를 교환 하거나 임의의 두 열 을 교환 할 수 있 습 니 다.최대 N+1 번 의 조작 이 있 습 니 다.만약 에 조작 후의 행렬 이 1~m 의 단조 로 운 증가 순서 라면 YES 를 출력 하고 그렇지 않 으 면 NO 를 출력 합 니 다.
사고:폭력 매 거 법 은 교환 열 이 필요 한 지 여 부 를 판단 하고 YES 를 직접 출력 할 필요 가 없다 면 매 거 진 교환 열 이 필요 하 다 면 판단 한다.
AC 코드:
#include
#include
#include
#include
using namespace std;
int a[25][25];
int n,m;
bool judge()
{
    for(int i=1;i<=n;i++)
    {
        int co=0;
        for(int j=1;j<=m;j++)
        {
            if(a[i][j]!=j)
                co++;
        }
        if(co>2)//            2,      
            return false;
    }
    return true;//  ,   。
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        scanf("%d",&a[i][j]);
    if(judge())
    {
        printf("YES
"
); return 0; } for(int i=1;ifor(int j=i+1;j<=m;j++) { // for int flag=1; for(int k=1;k<=n;k++) swap(a[k][i],a[k][j]);// i,j if(judge()) { printf("YES
"
); return 0; } for(int k=1;k<=n;k++) swap(a[k][i],a[k][j]); } } printf("NO
"
); return 0; }

오리지널 작품 을 전재 할 수 있다 면 대단히 영 광 스 럽 습 니 다!

좋은 웹페이지 즐겨찾기