9 - 7 조개 필기시험, 4 문제 AK

4238 단어 알고리즘
9 - 7 조개 필기시험, 4 문제 AK
  • num1
  • num2
  • num3
  • num4


  • num1
    첫 번 째 문제: 가위, 바위, 보, 우 매 와 소, 왼손 에서 무슨 오른손 이 나 오 는 지 알 고 있 지만 소 가 왼손 이 나 올 지 오른손 이 나 올 지 모 르 겠 습 니 다. 우 리 는 우 매 에 게 어느 손 으로 이 길 지 생각 하 라 고 요구 합 니 다. 우 매 의 왼손 과 소 두 손 으로 이 긴 경 기 를 비교 한 다음 에 우 매 의 오른손 과 소 두 손 으로 이 긴 경 기 를 비교 해 보 겠 습 니 다.소 여동생 이 왼손 으로 이 긴 횟수 가 많 을 지 오른손 으로 이 긴 횟수 가 많 을 지 판단 하면 된다.
    int check(char s,char t)
    {
        if(s=='S'&&t=='J')
            return 1;
        if(s=='J'&&t=='B')
            return 1;
        if(s=='B'&&t=='S')
            return 1;
        return 0;
    }
    int main()
    {
        int n,t;
        char a,b,c,d;
        scanf("%d",&t);
        getchar();
        while (t--)
        {
            scanf("%c %c %c %c",&a,&b,&c,&d);
            getchar();
            int y1=0;
            int y2=0;
            if(check(a,c)==1)
                y1++;
            if(check(a,d)==1)
                y1++;
            if(check(b,c)==1)
                y2++;
            if(check(b,d)==1)
                y2++;
            if(y1==y2)
            {
                printf("same
    "); } else if(y1>y2) { printf("left
    "); } else { printf("right
    "); } } return 0; }

    num2
    쓰기 가 귀찮다.
    #include
    using namespace std;
    typedef  long long ll;
    const int maxn = 3e5 + 10;
    char a[maxn];
    int main()
    {
       int n,t;
       while (~scanf("%d",&n)){
           scanf("%s",a);
           int ans=n;
           int i=0;
           int j=0;
           int k=1;
           while (k<=n/2){
               bool flag=true;
               j=k;
               i=0;
               while (i

    num3
    제목: 주어진 M 가지 색상, M * K 종 은 서로 인접 할 수 없 으 며 안정 적 인 정렬 방안 입 니 다.사고방식: 이런 문 제 는 일반적으로 검색 해서 풀 수 있 지만 검색 은 일반적으로 DP 방안 에서 물 러 날 수 있 고 DP 방안 은 행렬 곱셈 으로 바 뀔 수 있 으 며 행렬 곱셈 으로 가속 할 수 있다.검색
    #include
    using namespace std;
    const int mod=1e9+7;
    const int maxn=1010;
    int dp[maxn][11],mp[11][11];
    int main()
    {
        int T,N,M,K,x;
        scanf("%d",&T);
        while(T--){
            memset(mp,0,sizeof(mp));
            scanf("%d%d%d",&N,&M,&K);
            for(int i=1;i<=M;i++){
                for(int j=1;j<=K;j++){
                    scanf("%d",&x);
                    mp[x][i]=1;
                }
            }
            dp[0][0]=1;
            for(int i=1;i<=N;i++){
                for(int j=1;j<=M;j++){
                    for(int k=0;k<=M;k++){
                        if(!mp[j][k]) {
                            dp[i][j]+=dp[i-1][k];
                            if(dp[i][j]>=mod) dp[i][j]-=mod;
                        }
                    }
                }
            }
            int ans=0;
            for(int i=1;i<=M;i++) {
                ans+=dp[N][i];
                if(ans>=mod) ans-=mod;
            }
            printf("%d
    ",ans); } return 0; }

    num4
    마이너스 가 없 기 위해 서 우 리 는 아래 표 시 를 - N 에서 N 까지 1 - 2N 로 바 꾸 었 다.그리고 구간 DP 를 시작 합 니 다.우 리 는 dp [i] [j] 에 게 [i, j] 구간 의 최소 대 가 를 죽 이 라 고 명령 했다. 그러면 일반적으로 dp [i] [j] = min (dp [i] [j - 1] + 대가 1, dp [i + 1] [j] + 대가 2) 이 있 을 수 있다.그래서 우 리 는 후속 성 이 없어 서 길 이 를 1 차원 으로 설정 할 수 있다.
    #include
    using namespace std;
    const int maxn=2010;
    int a[maxn],b[maxn],suma[maxn],sumb[maxn],dp[maxn][maxn];
    int main()
    {
        int T,N,M,K,x;
        scanf("%d",&N);
        memset(dp,0x3f,sizeof(dp));
        for(int i=1;i<=N+N;i++) {
            scanf("%d",&a[i]);
            suma[i]=suma[i-1]+a[i];
        }
        for(int i=1;i<=N+N;i++) {
            scanf("%d",&b[i]);
            sumb[i]=sumb[i-1]+b[i];
        }
        for(int L=1;L<=N+N;L++){
           for(int i=1;i<=N+1;i++){
                int j=i+L-1;
                if(i>N+1||jN+N) continue;
                if(i==j) {
                     dp[i][j]=a[i];
                }
                else {
                    int x=dp[i+1][j],y=dp[i][j-1];
                    int nowx=sumb[j]-sumb[i]-suma[j]+suma[i]+dp[i+1][j];
                    int nowy=sumb[j-1]-sumb[i-1]-suma[j-1]+suma[i-1]+dp[i][j-1];
                    if(nowx

    좋은 웹페이지 즐겨찾기