2017 마늘따기 1차전 3차전.
7055 단어 시합 후에는 반드시 무엇을 써야 한다
1. 텐센트 교실에서의 물리 실험:
아이디어:
솔직히 이 문제는 코드 능력이 강하면 풀 수 있을 것 같아서 생각이 금방 떠올랐다.한마디로 충분하다. "두 개의 작은 공이 서로 부딪힌 후 반대 방향으로 가면 두 개의 작은 공이 서로 쳐다보고 아무도 상대하지 않고 스쳐 지나가는 것으로 볼 수 있다."그러나 그 몇 줄의 코드만 엉망으로 써서 오랫동안 낭비했다.생각이 비교적 중요하니 이 코드는 매우 엉망이니 개의치 마라.
코드:
#include
#include
#include
using namespace std;
int t,l,n;
int main()
{
cin>>l>>t>>n;
int x=n%(2*l);
if(x>l)x=2*l-x;
int y=(n-t)%(2*l);
if(y>l)y=2*l-y;
y=l-y;
if(x-y>0)cout<else cout<
2. 텐센트 늑대인간살육(쉬움)
분석:
할 말도 없다. 데이터가 매우 작다. 단지 20명, 폭력 매거진, 220가지 조합 방식, 가지치기에서 나타날 수 없는 방식, 즉 반드시 선택해야 하는 마을 사람들이 뽑히지 않은 상황이다.나는 dfs 과정 중의 모든 층에서 총 전투력sum에 대한 동적 유지보수를 유지한다.매번 조합 방식이 확정된 후에 다시 단독으로 이런 조합 방식의 성가비를 계산하는 것이 아니다.그렇게 계산하면 시간 초과할 것 같아.
코드:
#include
#include
#include
using namespace std;
int map[30][30]={0};
int vis[30]={0};
int in[30]={0};
int n,m;
int a,b,w;
int sum=0;
int chose=0;
double best=0;
void dfs(int x)// x
{
if(x==n+1)
{
double o=(double)(sum)/(double)(chose*(2*n-chose));
//cout<
if(bestreturn ;
}
for(int i=0;i<=1;i++)
{
if(vis[x]==1&&i==0)continue;
in[x]=i;
if(in[x]==1)
{
for(int i=1;iif(in[i]==1)sum+=map[i][x];
}
chose++;
}
dfs(x+1);
if(in[x]==1)
{
for(int i=1;iif(in[i]==1)sum-=map[i][x];
}
in[x]=0;
chose--;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&w);
map[a][b]=w;
map[b][a]=w;
}
int k=0;// k
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
if(a==1)
{
//k++;
vis[i]=1;
}
}
dfs(1);
printf("%.4lf",best);
}
요약:
모두 네 문제인데, 앞의 두 문제는 모두 어렵지 않고, 뒤의 두 문제는 전혀 생각이 없다.이번에는 실수가 크다고 생각해서 첫 번째 문제에 O(1)의 복잡도를 적은 코드가 오랫동안 잉크되어 있었다.내가 지나갈 때 이미 200여 명이 지나갔다.그리고 아래층으로 내려가서 펜을 가지고 돌아오세요.그리고 두 번째 문제를 쓰기 시작했습니다. 처음에는 폭력으로 일일이 열거하고 싶지 않았습니다. 세 번째 문제, 즉 데이터 규모가 더 큰 답이 떠오르면 이 문제도 직접적으로ac에 해당하기 때문입니다.그러나 아무런 생각이 없다는 것을 발견하고 다시 정직한 폭력 매거 두 번째를 할 수밖에 없었다.두 번째 라운드가 지나면 두 시간의 경기가 한 시간 넘게 남았지만 뒤의 두 라운드는 정말 할 수 없다.벌칙이 없을 때 두 번째 골을 낸 뒤 103위에서 경기가 끝날 때까지 순위가 안정됐기 때문이다.xxxxxxxxxxxx위 줄의 네 개의'xxx'문자열은 매우 기념적인 의미를 가진다. 왜냐하면 그들은 내가 경기가 끝나기 전 마지막 분에 쳤기 때문이다. 그래, 경기가 끝나지 않아서 나는 이 블로그를 쓰기 시작했다. 나는 여기까지 썼는데 경기가 막 끝났다.
자, 경기 종료, 랭킹 103, 복식 진출~
여섯 번의 시합으로 첫 번째 시합에서 임시로 일이 생겨서 첫 번째 경기를 끝내고 두 번째 경기를 하지 못했다.두 번째는 동아리 훈련이 있어서 나는 하지 않았고 200위권 안에 들지 못했다.복식은 모두 1200명인데 기말 복습과 충돌하지 않는다면 잘 싸워라. 복식 4백 위권 안에 있는'한정판 복식 기념 티셔츠'를 원한다.이번 문제: 네 번째 문제 2인ac, 세 번째 문제 4인ac, 두 번째 문제 23인ac.역시 문제를 푸는 속도에 의지해야 하며, 또 가능한 한 벌칙을 받지 않도록 해야 한다.34문제에 대한 문제풀이: 나는 자세히 읽지 못했지만, 그는'나는 들어본 적이 없다'는 알고리즘으로 해결해야 한다고 언급했다.
학습 목표: 1.최대 밀도 서브맵 (위의 그 알고리즘) 2.후버타오의 논문.(예전에 여러 번 언급됐는데 이번까지 포함해서 프로답겠다)