hdu 4381 Grid [약간 복잡 한 가방]
제목: 한 열 에 n 개의 격자 m 회 조작 이 있 으 면 특정한 구간 의 x 개의 칸 을 흰색 으로 칠 할 수 있 습 니 다. 마지막 에 최대 몇 개의 흰색 이 있 느 냐 고 물 습 니 다 = =
가방 이랑 어떻게 관련 이 있 을 지 정말 몰랐어 요.상태 가 좋 지 않 기 때문에 오랫동안 문 제 를 풀 고 나 서 야 문제 의 구간 이 반드시 두 개의 단점 에서 시작 되 었 다 는 것 을 알 게 되 었 다. 그러면 이 성질 을 이용 하여 X 의 색칠 이 모두 단점 에서 시작 되 고 끊 이지 않 으 며 얼마나 가방 같 은 지 가정 할 수 있다.그럼 어떻게 쓰 지?
우선, 끊 임 없 는 색칠 인지 확인 되 었 으 니, 아래 표 시 는 몇 개의 색칠 이 있 는 지 직접 반영 할 수 있 습 니 다. dp 배열 은 조작 횟수 가 필요 합 니 다 ~ 첫 번 째 질문 에 대한 색칠 개 수 는 두 배열 의 아래 표 와 일치 하 는 것 입 니 다.두 번 째 질문: Dp 값 과 최소 값 을 구하 면 되 잖 아 요.
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
const int maxn = 2005;
struct node{
int aa,cor;
node(){}
node(int _aa,int _cor){
aa = _aa; cor = _cor;
}
}x1[maxn],x2[maxn];
int n,m;
int dp1[maxn],dp2[maxn];
int sumx1,sumx2;
bool cmp(const node &p,const node &q){
return p.aa < q.aa;
}
int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
int cas,ta=1;
scanf("%d",&cas);
while(cas--){
int i,j;
scanf("%d%d",&n,&m);
sumx1 = sumx2 = 1;
for(i=0; i<m; i++){
int key,yy,z;
scanf("%d%d%d",&key,&yy,&z);
if(key == 1){
x1[sumx1++] = node(yy,z);
}else{
x2[sumx2++] = node(n+1-yy,z);
}
}
sort(x1+1,x1+sumx1,cmp);
sort(x2+1,x2+sumx2,cmp);
memset(dp1,0x3f,sizeof(dp1));
memset(dp2,0x3f,sizeof(dp2));
dp1[0] = dp2[0] = 0;
for(i=1; i<sumx1; i++){
for(j=x1[i].aa; j>=x1[i].cor; j--){
dp1[j] = min(dp1[j],dp1[j-x1[i].cor]+1);
}
}
for(i=1; i<sumx2; i++){
for(j=x2[i].aa; j>=x2[i].cor; j--){
dp2[j] = min(dp2[j],dp2[j-x2[i].cor]+1);
}
}
int ans = 0,anssum = 0,tmp;
for(i=1; i<=n; i++){
for(j=0; j<=i; j++){
tmp = dp1[j] + dp2[i-j];
if(tmp <= m){
if(ans != i){
ans = i; anssum = tmp;
}else if(tmp < anssum){
anssum = tmp;
}
}
}
}
printf("Case %d: %d %d
",ta++,ans,anssum);
}
return 0;
}
P。S。 주말 정 비 를 마 쳤 지만 오늘 오후의 상 태 는 레저 에서 벗 어 나 지 못 했 습 니 다. T ^ T. 오늘 밤 정상 궤도 에 오 를 수 있 을 것 같 습 니 다.주말 을 앞 두 고 룸메이트 와 중학교 이 야 기 를 나 눈 기억 이 납 니 다. 실 장님 으로 부터 어린 시절 이 라 고 평 가 받 았 습 니 다. 중학교 와 고등학교 가 모두 없어 졌 기 때 문 이 라 고 평 가 받 았 습 니 다. 한편 으로 는 중학교 의 엄격 한 교육 이 가 져 온 성적 에 감 사 드 리 고, 다른 한편 으로 는 그런 교육 이 저 를 이렇게 뻔뻔 하 게 살 게 해 준 것 에 감 사 드 립 니 다.첫 번 째 단체 활동 (노동절 이 든 11 일 이 든 홍수 방지 기념 탑 에서 의 학교 축제 이브 닝 파티 든 무슨 파티 든 어차피 관중 이 되 어야 한다) 원래 낮 에 가족 들 과 놀 러 가 야 하 는데 제시간에 돌아 오지 못 하고 담임 선생님 과 휴가 를 내 서 지적 을 받 았 다. 수학 시험 7, 8 점 은 재미있게 놀 러 갈 수 있다!고등학교 때 출입증 빌려 주 고 들 키 면 담임 선생님 이 계단 에서 소리 지 르 는 반 전체 가 방 에서 다 들 려 요. 어쨌든 대학 에 들 어간 후 유리 마음 은 체면 문제 로 인해 자주 자신 과 어 울 리 지 못 할 것 같 지만 지나 가면 지나 간다.
내년 봄 에 남 을 수 있 을 지, 내년 가을 에 제대로 취직 할 수 있 을 지 걱정 입 니 다. 강북 에 대한 희망 이 있 었 는데 마지막 퇴로 로 (대학원 진학 은 불가능 합 니 다 = =) 집 이 강북 에 있 으 면 사업 장 에 사람 을 구 하 는 것 같 습 니 다. T ^ T 그래도 IT 회사 에 가서 전단 개발 을 하고 싶 습 니 다. T ^ T ""이 일 은 별로 쓸모 가 없 으 니 자신 이 선택 한 방향 으로 노력 하 세 요. 지난주 에 시 진 핑 에서 말 하 는 사상 선생님 께 서 대학 3 학년 때 부터 이력 서 를 작성 하기 시작 했다 고 하 셨 는데 위 에서 'ACM 지역 경기 동메달 이 무슨 소 용이 있 습 니까?' 라 고 묻 는 것 을 연상 시 켰 습 니 다.맨 아래 의 대답 은 저 에 게 만 개의 찬 사 를 주 고 싶 습 니 다. 지역 경기 동메달 은 한 줄 뿐 입 니 다. 아마 많은 사람들의 대학 4 년 일 것 입 니 다. 화 이 팅 하 세 요. 1 년도 안 남 았 습 니 다. 자기 야, 자신 만 감동 시 키 지 말고 지금 좀 더 노력 하고 힘 들 게 하 세 요. 내년 가을 에 눈 하나 덜 받 고 offer 하나 더 받 으 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.