제6 회 블 루 브리지 컵 소프트웨어 대회 A 조 예선

다음은 제 개인 적 인 답 입 니 다. 토론 의 지적 을 환영 합 니 다!
그리고 마지막 두 문제 정 해 주세요.
방정식 정수 해
방정식: a ^ 2 + b ^ 2 + c ^ 2 = 1000
(또는 [그림 1. jpg] 참조)
이 방정식 은 정수 해 가 있 습 니까?a, b, c = 6, 8, 30 은 한 조 의 풀이 다.
너 는 다른 조 의 적당 한 해 를 계산 해 낼 수 있 니?
a,b,c=10,18,24
이 해 에서 가장 작은 숫자 를 써 주세요.
10
주의: 당신 이 제출 한 것 은 정수 여야 합 니 다. 불필요 한 내용 이나 설명 문 자 를 쓰 지 마 십시오.
코드:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
const int N = 1001;
using namespace std;
int main() 
{
	int x,y,z;
	for(int i=1;i<=sqrt(N);i++)
	{
		for(int j=1;j<=sqrt(N);j++)
		{
			for(int k = 1;k<=sqrt(N);k++)
			{
				if(i*i + j*j + k*k==1000)
				{
					printf("%d %d %d
",i,j,k); } } } } return 0; }

은하계 폭탄
X 성 계 의 넓 은 공간 에 많은 X 성 인공 '폭탄' 이 떠 있어 우주의 이정표 로 쓰 인 다.
모든 폭탄 은 며칠 후에 폭발 할 수 있 는 지 설정 할 수 있다.
예 를 들 어 알파 폭탄 은 2015 년 1 월 1 일 에 설치 되 었 고 정시 가 15 일이 면 2015 년 1 월 16 일 에 폭발 했다.
2014 년 11 월 9 일 에 방 치 된 베 타 폭탄 이 있 습 니 다. 시간 은 1000 일 입 니 다. 정확 한 날 짜 를 계산 해 주세요.
이 날 짜 를 입력 하 십시오. 형식 은 yyy - mm - dd 입 니 다. 즉 4 위 연도 2 위 월 2 위 날짜 다.2015 - 02 - 19
격식 에 따라 엄 격 히 쓰 세 요.다른 문자 나 기호 가 나타 날 수 없습니다.
2017-08-05
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
const int N = 1001;
using namespace std;
int main() 
{
	int mou[20] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
	int t = 0;
	int year = 2014,m = 11,day = 9;
	while(t<=1000)
	{
		int ps = 0;
		if(m == 2 && year%4==0 && year % 400!=0)
		{
			ps = 1;
		}
		while(day<=(mou[m]+ps))
		{
			day++;
			t++;
			if(t>=1000)
				break;
		}
		if(t>=1000)
			break;
		day = 1;
		m++;
		if(m==13)
		{
			year++;
			m = 1;
		}
		printf("%d %d %d %d
",year,m,day,t); } printf("%d %d %d
",year,m,day); return 0; }

기묘 한 숫자
샤 오 밍 은 기묘 한 숫자 를 발견 했다.그것 의 제곱 과 세제곱 은 0 ~ 9 의 10 개의 숫자 를 각각 사용 하고 한 번 만 사용 했다.
너 는 이 숫자 가 얼마 인지 알 아 맞 힐 수 있 니?
이 숫자 를 작성 하 세 요. 불필요 한 내용 은 쓰 지 마 세 요.
69
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
const int N = 1001;
using namespace std;

bool solve(int a,int b)
{
	int ok[20];
	memset(ok,0,sizeof(ok));
	while(a)
	{
		ok[a%10]++;
		a/=10;
	}
	while(b)
	{
		ok[b%10]++;
		b/=10;
	}
	bool flag = true;
	for(int i=0;i<10;i++)
	{
		if(ok[i] != 1)
		{
			flag = false;
			break;
		}
	}
	return flag;
}

int main() 
{
	for(int i=1;;i++)
	{
		int xx = i*i;
		int xxx = i*i*i;
		if(solve(xx,xxx))
		{
			printf("%d
",i); break; } } return 0; }

체크 아웃
StringInGrid 함 수 는 지정 한 크기 의 칸 에 지정 한 문자열 을 인쇄 합 니 다.
문자열 이 수평, 수직 두 방향 에서 모두 가운데 로 있어 야 합 니 다.
문자열 이 너무 길 면 끊 습 니 다.
만약 마침 가운데 에 있 지 못 한다 면, 약간 왼쪽으로 치 우 치 거나 위로 치 우 칠 수 있다.
다음 프로그램 은 이 논 리 를 실현 합 니 다. 밑줄 부분 에 부족 한 코드 를 작성 하 십시오.
#include <stdio.h>
#include <string.h>

void StringInGrid(int width, int height, const char* s)
{
	int i,k;
	char buf[1000];
	strcpy(buf, s);
	if(strlen(s)>width-2) buf[width-2]=0;
	
	printf("+");
	for(i=0;i<width-2;i++) printf("-");
	printf("+
"); for(k=1; k<(height-1)/2;k++){ printf("|"); for(i=0;i<width-2;i++) printf(" "); printf("|
"); } printf("|"); printf("%*s%s%*s",(width - strlen(buf)-2)/2," ",buf,(width - strlen(buf)-2)/2+(width - strlen(buf)-2)%2," "); // printf("|
"); for(k=(height-1)/2+1; k<height-1; k++){ printf("|"); for(i=0;i<width-2;i++) printf(" "); printf("|
"); } printf("+"); for(i=0;i<width-2;i++) printf("-"); printf("+
"); } int main() { StringInGrid(20,6,"abcd1234"); return 0; }

상표 종류
샤 오 밍 은 X 도박장 으로 납 치 돼 다른 3 명 과 카드 놀 이 를 할 수 밖 에 없 었 다.
카드 한 벌 (크 고 작은 카드 를 제외 하고 모두 52 장) 을 4 명 에 게 13 장 씩 골 고루 나 눠 준다.
이때 샤 오 밍 의 머 릿 속 에 갑자기 문제 가 생 겼 다.
만약 에 무늬 와 색깔 을 고려 하지 않 고 포인트 만 생각 하고 자신 이 얻 은 카드 의 선후 순서 도 고려 하지 않 는 다 면 자신 이 손 에 들 수 있 는 초기 카드 형 조합 은 모두 몇 가지 가 있 습 니까?
이 정 수 를 작성 하 십시오. 불필요 한 내용 이나 설명 문 자 를 쓰 지 마 십시오.
13 * 13 * 13 * 13 * 12 * 12 * 12 * 11 * 11 * 11 * 11 * 10 = 86709989583360
팔찌 모양 의 샤 오 밍 은 붉 은 산호 3 개, 흰 산호 4 개, 노 란 마노 5 개가 있다.그 는 그것들 을 팔찌 로 꿰 어 여자친 구 에 게 주 고 싶 었 다.지금 샤 오 밍 은 팔찌 가 마음대로 돌아 가 거나 뒤 집 힐 수 있다 는 것 을 고려 하면 모두 몇 가지 조합 스타일 이 있 을 까?이 정 수 를 제출 해 주 십시오.불필요 한 내용 이나 설명 적 인 문 자 를 쓰 지 마 세 요.27719
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
const int N = 1001;
using namespace std;
typedef __int64 LL;
map<LL,int> m;
int cnt[20] = {1,1,1,2,2,2,2,3,3,3,3,3};

bool solve(int a[])
{
	for(int i=0;i<12;i++)
	{
		LL tmp = 0;
		for(int j = i;j<12;j++)
		{
			tmp = tmp *10 + a[j];
		}
		for(int j = 0;j<i;j++)
			tmp = tmp *10 + a[j];
		//printf("%I64d
",tmp); if(m[tmp]){} else { m[tmp] = 1; return true; } } LL tmp = 0; for(int i=11;i>=0;i--) tmp = tmp *10 + a[i]; if(m[tmp]){} else { m[tmp] = 1; return true; } return false; } int main() { int ans = 0; //solve(cnt); while(next_permutation(cnt,cnt+12)) { LL tmp = 0; for(int i=0;i<12;i++) { tmp = tmp * 10 + cnt[i]; } //printf("%I64d
",tmp); if(solve(cnt)) { ans++; } } printf("%d
",ans); return 0; }

음료수
러 양 음료 공장 에서 판 촉 할인 행 사 를 열 고 있다.락 양 C 형 음 료 는 병뚜껑 3 개 로 C 형 음 료 를 한 병 더 바 꿀 수 있 고 계속 순환 할 수 있다 (단, 잠시 빌 리 거나 외상 은 허용 되 지 않 는 다).
만약 샤 오 밍 이 병마 개 를 낭비 하지 않 고 가능 한 한 행사 에 참가한다 면, 그 가 처음 구입 한 n 병 의 음료 에 대해 마지막 에 그 가 모두 몇 병 의 음 료 를 마 실 수 있 는 지 계산 해 보 세 요.
입력: 하나의 정수 n 은 구 매 하기 시작 한 음료수 수량 (0 < n < 10000) 을 표시 합 니 다.
출력: 하나의 정수 로 실제 얻 은 음료 수 를 표시 합 니 다.
예 를 들 면:
사용자 입력:
100
프로그램 출력:
149
사용자 입력:
101
프로그램 출력:
151
자원 약정:
최대 메모리 소모 < 256 M
CPU 소모 < 1000ms
#include <algorithm>
#include <map>
const int N = 1001;
using namespace std;

int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		int ans = n,tmp = n;
		while(tmp>=3)
		{
			int ps = tmp;
			ans+=ps/3;
			tmp = ps%3 + ps/3;
		}
		printf("%d
",ans); } return 0; }

주사 위 를 쌓다
도박 성 atm 은 만년 에 주사위 에 미련 을 두 었 다. 바로 주사 위 를 다른 위 에 쌓 는 것 이다. 비 뚤 어 져 서 는 안 되 고 네모 난 기둥 으로 쌓 아야 한다.
장기 적 인 관찰 을 통 해 아 톰 은 주사 위 를 안정 시 키 는 비밀 을 발견 했다. 어떤 숫자 가 붙 어 있 으 면 서로 배척 할 수 있다!
우리 먼저 주사 위 를 규범화 합 시다. 1 의 맞은편 은 4, 2 의 맞은편 은 5, 3 의 맞은편 은 6 입 니 다.
만약 에 m 조 가 서로 배척 하 는 현상 이 있다 고 가정 하면 각 조 의 두 숫자 면 이 붙 어 있 으 면 주사 위 는 안정 적 으로 쌓 이지 못 한다. 
atm 은 몇 가지 다른 주사위 방식 이 있 는 지 계산 하고 싶 습 니 다.
두 가지 주사위 방식 이 같 고 이 두 가지 방식 에서 만 높이 에 대응 하 는 주사위 의 대응 숫자 방향 이 모두 같다.
프로젝트 수가 너무 많 을 수 있 으 므 로 10 ^ 9 + 7 의 결 과 를 출력 하 십시오.
아 톰 의 주사위 수 를 얕 보지 마 세 요 ~
"입력 형식"
첫 줄 두 정수 n m
주사위
다음 m 줄 은 줄 마다 두 개의 정수 a b 로 a 와 b 숫자 가 붙 어 있 지 않 음 을 나타 낸다.
"출력 형식"
한 줄 한 수 는 답 모 10 ^ 9 + 7 의 결 과 를 나타 낸다.
"샘플 입력"
2 1
1 2
"샘플 출력"
544
"데이터 범위"
30% 에 대한 데이터: n < = 5
60% 에 대한 데이터: n < = 100
100% 에 대한 데이터: 0 < n < = 10 ^ 9, m < = 36
이 문 제 는 보기에 머리 가 아 프 고 상황 이 너무 많다!분류 토론 이 아 닐 까 싶 습 니 다.
피해 복구 페 어 시 에는 모두 N (& lt; = 50000) 개 주민 지점 이 있 고 주민 지점 간 에는 M (& gt; = 20000) 개의 양 방향 도로 가 연결 되 어 있다.이 주민 들 은 두 곳 사이 에 모두 양 방향 도 로 를 통 해 도착 할 수 있다.이런 상황 이 최근 까지 계속 되면 서 심각 한 지진 으로 M 개 도로 가 모두 파괴 됐다.지진 후 Pear 는 그 중 일부 도 로 를 복구 하려 고 하 는데 i 조 도 로 를 수리 하 는 데 Pi 의 시간 이 필요 하 다.그러나 Pear 는 모든 점 을 연결 시 키 려 는 것 이 아니 라 레이 블 의 특별한 점 을 선택 하여 연결 시 키 려 고 한다.Pear 는 Q (< = 50000) 번 의 질문 이 있 습 니 다. 매번 물 어 볼 때마다 그 는 모든 번 호 를 [l, r] 사이 에 선택 하고 번호 mod K 를 선택 합 니 다. = C 의 점, 길 을 수리 해서 연결 시 켜 라.모든 도로 의 수 리 는 동시에 공 사 를 시작 할 수 있 기 때문에 수 리 를 완성 하 는 시간 은 가장 오래 걸 리 는 길, 즉 관련 된 도로 에서 Pi 의 최대 치 에 달 려 있다.당신 은 Pear 가 매번 질문 할 때마다 필요 한 최소한 의 시간 을 계산 하 는 것 을 도와 줄 수 있 습 니까?여기 서 묻 는 것 은 독립 적 인 것 이다. 즉, 지난 문의 에서 의 수리 계획 은 행동 에 옮 기지 않 았 다 는 것 이다.[입력 형식] 첫 번 째 줄 의 세 개의 정수 N, M, Q 는 문제 면 에서 말 한 바 와 같다.그 다음 에 M 줄 은 각 줄 에 세 개의 정수 Xi, Yi, Pi 를 표시 하고 Xi 와 Yi 를 연결 하 는 양 방향 도 로 를 표시 하 며 복 구 는 Pi 의 시간 이 필요 하 다.이 가능 하 다, ~ 할 수 있다,...1<=Pi<=1000000。 이 어 Q 행 은 행 당 4 개의 정수 인 Li, Ri, Ki, Ci 로 이번 질문 의 포 인 트 는 [Li, Ri] 구간 의 모든 번호 인 Mod Ki = Ci 의 점 이 라 고 밝 혔 다.문의 에 참여 할 것 을 보증 하 는 점 은 적어도 두 가지 가 있다.[출력 형식] 출력 Q 줄, 각 줄 의 정수 가 질문 에 대한 답 을 표시 합 니 다.【 샘플 입력 】 7, 10, 4, 1, 3, 10, 2, 6, 5, 3, 3, 6, 9, 1, 5, 8, 2, 3, 1, 7, 6, 7, 1, 7, 1, 7, 1, 3, 2, 3, 7, 2, 3, 7, 3, 3, 7, 7, 7, 7, 7, 1, 7, 1, 7, 1, 7, 1, 3, 3, 1, 2, 3, 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 1, 3, 2, 3, 3, 7[0, 질문 에 대응 하 는 Ki) 범위 내 에 있 습 니 다. 작은 데 이 터 는 트 리 를 최소 로 생 성 할 수 있다 고 합 니 다. 큰 데 이 터 는 트 리 체인 으로 나 누 어야 합 니 다. 그냥 문 제 를 읽 었 습 니 다.

좋은 웹페이지 즐겨찾기