您的位置:首页 > 产品设计 > UI/UE

UESTC 2014 Summer Training #18 Div.2

2014-08-09 23:22 225 查看
A.UVALive 6661

  题意从1~N中选k个数,和为s的方案数

  第一眼搜索,估计错状态量,又去yydp...浪费大量时间

  数据很小的,状态数都不会超过2^N...直接dfs就过了

//state二进制表示选取的数

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

const int maxn = 200;

int N, S, K, cnt;

void dfs(int state, int k, int s, int start)
{
//    cout << k << ' ' << s << endl;
if(k == 0 && s == 0) {
//        for(int i = 0; i < N; i++)
//            if(state&(1<<i))    cout << (i+1) << ' ';
//        cout << endl;
cnt++;
}
if(k == 0)    return;
for(int i = start; i < N; i++) {
if(state&(1<<i))    continue;
if(s < i+1)    break;
dfs(state|(1<<i), k-1, s-(i+1), i+1);
}
}

int main()
{
#ifdef LOCAL
freopen("A.in", "r", stdin);
#endif
while(scanf("%d%d%d", &N, &K, &S) != EOF) {
if(N == 0 && K == 0)    break;
cnt = 0;
dfs(0, K, S, 0);
printf("%d\n", cnt);
}
return 0;
}


B.UVALive 6662

  数据范围很小,直接模拟整个过程就行了。我是把长度、时间都×2,毕竟0.5不好处理。每隔1s计算所有蚂蚁位置,处理相交情况,标记走出通道。

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

const int maxn = 200+20;

int n, l, cnt, tcost, ans;
int p[maxn], dx[maxn];
bool done[maxn];

int main()
{
#ifdef LOCAL
freopen("B.in", "r", stdin);
#endif
while(scanf("%d%d", &n, &l) != EOF) {
if(n == 0 && l == 0)    break;
memset(done, 0, sizeof(done));
cnt = 0;
for(int i = 1; i <= n; i++) {
int x;
char dir;
getchar();
scanf("%c%d", &dir, &x);
if(dir == 'R')    dx[i] = 1;
else    dx[i] = -1;
p[i] = x*2;
}
for(int t = 1; t <= 2*l; t++) {
int lastone = 0;
for(int i = 1; i <= n; i++) {
if(done[i])    continue;
p[i] += dx[i];
if(p[i] == 0 || p[i] == 2*l) {
if(!lastone || p[i] == 0)    lastone = i;
done[i] = true;
cnt++;
}
}
for(int i = 2; i <= 2*l; i++) {
if(i % 2)    continue;
int x = 0;
for(int j = 1; j <= n; j++) {
if(done[j] || p[j] != i)    continue;
if(!x)    x = j;
else {
dx[x] *= -1;
dx[j] *= -1;
}
}
}
if(cnt == n) {
tcost = t;
ans = lastone;
break;
}
}
//finish
cout << tcost/2 << ' ' << ans << endl;
}
return 0;
}


  心态又开始崩了,A了两道就没有认真的看题了...不过这次剩下的题似乎都A不出来呢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: