9 - 7 조개 필기시험, 4 문제 AK
4238 단어 알고리즘
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.