您的位置:首页 > 大数据 > 人工智能

2014 Multi-University Training Contest 7 部分题目解题报告

2014-08-18 19:38 651 查看
http://acm.hdu.edu.cn/search.php?field=problem&key=2014%20Multi-University%20Training%20Contest%207&source=1&searchmode=source

前两天网络挂了=。= 一直没法发博客。。

HDOJ 4937 Lucky Number

题意:给一个数,问这个数能在多少种进制下只用3456来表示。

分析:很遗憾考场没做出。。其实很简单,分类讨论就可以了,一位的只有3456,二位的就是枚举3456然后解一元一次方程组,三位解一元二次方程组,四位及以上,一想,发现7000^3*3超过1e12了,所以base从4枚举到7000就可以了。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;

typedef pair<int, int> P;
int T, n, m, k, x, y, c, q;
map<P, int> p;
map<int, int> row, col;

int main()
{
scanf("%d", &T);
int cas = 0;
while(T--)
{
p.clear();
row.clear(); col.clear();
scanf("%d %d %d", &n, &m, &k);
for (int i = 0; i < k; i++){
scanf("%d %d %d", &x, &y, &c);
row[x] = x; col[y] = y;
P tmp = make_pair(x, y);
p[tmp] = c;
}
printf("Case #%d:\n", ++cas);
scanf("%d", &q);
for (int i = 0; i < q; i++){
scanf("%d %d %d", &c, &x, &y);
if (c == 1) swap(row[x], row[y]);
else if (c == 2) swap(col[x], col[y]);
else{
P tmp = make_pair(row[x], col[y]);
printf("%d\n", p[tmp]);
}
}
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: