官方解题报告:http://blog.sina.com.cn/s/blog_a19ad7a10102uz2v.html

Apple Tree http://acm.hdu.edu.cn/showproblem.php?pid=4925

 #include<cstdio>
const int M=;
int a[M][M];
int dx[]={,,,-};
int dy[]={,-,,};
int main(){
int t,n,m;
while(~scanf("%d",&t)){
while(t--){
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
for(int j=;j<m;j++){
a[i][j]=;
}
}
for(int i=;i<n;i++){
for(int j=;j<m;j++){
if((i+j)&){
a[i][j]=;
for(int k=;k<;k++){
int tx=i+dx[k];
int ty=j+dy[k];
if(tx>=&&tx<n&&ty>=&&ty<m){
a[tx][ty]<<=;
}
}
}
}
}
int sum=;
for(int i=;i<n;i++){
for(int j=;j<m;j++){
sum+=a[i][j];
}
}
printf("%d\n",sum);
}
}
return ;
}

Series 1 http://acm.hdu.edu.cn/showproblem.php?pid=4927

 import java.math.BigInteger;
import java.util.Scanner; class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int t,n,a[]=new int[3000];
BigInteger c[]=new BigInteger[3000];
c[0]=BigInteger.ONE;
while(cin.hasNext()){
t=cin.nextInt();
while(t-->0){
n=cin.nextInt();
for(int i=0;i<n;i++){
a[i]=cin.nextInt();
}
for(int i=1;i<n;i++){
c[i]=c[i-1].multiply(BigInteger.valueOf(n-i)).divide(BigInteger.valueOf(i));
}
BigInteger ans=BigInteger.ZERO;
for(int i=n-1,odd=1;i>=0;i--,odd^=1){
if(odd%2==1){
ans=ans.add(c[i].multiply(BigInteger.valueOf(a[i])));
}
else{
ans=ans.subtract(c[i].multiply(BigInteger.valueOf(a[i])));
}
}
System.out.println(ans);
}
}
}
}
 #include<cstdio>
#include<cstring>
#include<algorithm>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
const int M=;
class Hp { //高精度类
int len,s[M];
public:
void init() {
len=;
mt(s,);
}
void init(char ch[]) {
len=;
mt(s,);
int i=;
while(ch[i]==''&&ch[i]!=) i++;
if(ch[i]!=) {
len=strlen(ch)-i;
for(i=; i<len; i++) {
s[i]=ch[len-i-]-;
}
}
}
void init(int x) {
len=;
mt(s,);
while(x) {
s[len-]=x%;
x/=;
if(x) len++;
}
}
void init(const Hp& a) {
len=a.len;
for(int i=; i<M; i++) {
s[i]=a.s[i];
}
}
void print() { //输出
int i=len-;
while(s[i]==&&i>) i--;
for(; i>=; i--) {
printf("%d",s[i]);
}
}
int cmp(Hp a) { //比较,类似于char数组比较
if(len<a.len) return -;
else if(len>a.len) return ;
else {
int temp=len-;
while(temp>=&&s[temp]==a.s[temp]) temp--;
if(temp==-) return ;
else if(s[temp]<a.s[temp]) return -;
else return ;
}
}
void add(Hp a) { //高精度与高精度相加
int templen=max(len,a.len);
for(int i=; i<templen; i++) {
s[i]+=a.s[i];
if(s[i]>) {
s[i]-=;
s[i+]++;
}
}
len=templen;
if(s[len]!=) len++;
}
void add(int x) { //高精度加单精度
int temp=;
s[]+=x;
while(s[temp]>) {
s[temp]-=;
temp++;
s[temp]++;
}
if(s[len]!=) len++;
}
void subtract(Hp a) { //高精度减高精度
for(int i=; i<len; i++) {
s[i]-=a.s[i];
if(s[i]<) {
s[i]+=;
s[i+]--;
}
}
while(len>&&s[len-]==) len--;
}
void multiply10() { //高精度乘10
for(int i=len-; i>=; i--) {
s[i+]=s[i];
}
len++;
if(s[len-]==) len--;
}
void multiply(int b) { //高精度乘单精度
int temp=;
for(int i=; i<len; i++) {
temp+=s[i]*b;
s[i]=temp%;
temp/=;
}
s[len++]=temp;
while(s[len-]>) {
s[len]+=s[len-]/;
s[len-]%=;
len++;
}
while(len>&&s[len-]==) len--;
}
void multiply(Hp b) { //高精度乘高精度
Hp c;
mt(c.s,);
for(int i=; i<len; i++) {
for(int j=; j<b.len; j++) {
c.s[i+j]+=s[i]*b.s[j];
c.s[i+j+]+=c.s[i+j]/;
c.s[i+j]%=;
}
}
len=len+b.len;
for(int i=; i<len; i++) {
s[i]=c.s[i];
}
while(len>&&s[len-]==) len--;
}
int divide(int b) { //高精度除单精度
int ret=;
for(int i=len-; i>; i--) {
s[i-]+=(s[i]%b)*;
s[i]/=b;
}
ret=s[]%b;
s[]/=b;
while(len>&&s[len-]==) len--;
return ret;
}
Hp divide(Hp b) { //高精度除高精度
Hp c,d;
mt(c.s,);
mt(d.s,);
d.len=;
for(int i=len-; i>=; i--) {
d.multiply10();
d.s[]=s[i];
while(d.cmp(b)>=) {
d.subtract(b);
c.s[i]++;
}
}
for(int i=; i<len; i++) {
s[i]=c.s[i];
}
while(len>&&s[len-]==) len--;
while(d.len>&&d.s[d.len-]==) d.len--;
return d;
}
} c[],ans,tmp;
int a[];
int main(){
int t,n;
while(~scanf("%d",&t)){
while(t--){
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
c[].init();
for(int i=;i<n;i++){
c[i].init(c[i-]);
c[i].multiply(n-i);
c[i].divide(i);
}
for(int i=;i<n;i++){
c[i].multiply(a[i]);
}
ans.init();
tmp.init();
for(int i=n-,odd=;i>=;i--,odd^=){
if(odd&) ans.add(c[i]);
else tmp.add(c[i]);
}
if(ans.cmp(tmp)<){
putchar('-');
tmp.subtract(ans);
tmp.print();
}
else{
ans.subtract(tmp);
ans.print();
}
puts("");
}
}
return ;
}

Fighting the Landlords http://acm.hdu.edu.cn/showproblem.php?pid=4930

 #include<cstdio>
#include<cstring>
#define mt(a,b) memset(a,b,sizeof(a))
const int M=;
char my[M],his[M];
int summy[M],sumhis[M],nummy[M],numhis[M];
int getid(char c){
if(c>=''&&c<='') return c-'';
if(c=='T') return ;
if(c=='J') return ;
if(c=='Q') return ;
if(c=='K') return ;
if(c=='A') return ;
if(c=='') return ;
if(c=='X') return ;
if(c=='Y') return ;
}
void yes(){
puts("Yes");
}
void no(){
puts("No");
}
int findbigid(int a[],int num){
for(int i=;i>=;i--){
if(a[i]>=num){
return i;
}
}
return -;
}
int main(){
int t;
while(~scanf("%d",&t)){
while(t--){
scanf("%s%s",my,his);
mt(summy,);
for(int i=;my[i];i++){
summy[getid(my[i])]++;
}
mt(sumhis,);
for(int i=;his[i];i++){
sumhis[getid(his[i])]++;
}
mt(nummy,);
for(int i=;i<=;i++){
nummy[summy[i]]++;
}
mt(numhis,);
for(int i=;i<=;i++){
numhis[sumhis[i]]++;
}
if(nummy[]){
if(nummy[]==&&!nummy[]){
if(!nummy[]&&!nummy[]){
yes();
continue;
}
if(!nummy[]&&nummy[]==){
yes();
continue;
}
if(nummy[]==&&!nummy[]){
yes();
continue;
}
}
}
else{
if(nummy[]){
if(nummy[]==){
if(!nummy[]&&!nummy[]){
yes();
continue;
}
if(nummy[]==&&!nummy[]){
yes();
continue;
}
if(!nummy[]&&nummy[]==){
yes();
continue;
}
}
}
else{
if(nummy[]){
if(nummy[]==&&!nummy[]){
yes();
continue;
}
}
else{
if(nummy[]==){
yes();
continue;
}
if(nummy[]==&&summy[]==&&summy[]==){
yes();
continue;
}
}
}
}
if(summy[]==&&summy[]==){
yes();
continue;
}
if(sumhis[]==&&sumhis[]==){
no();
continue;
}
if(numhis[]){
if(!nummy[]){
no();
continue;
}
int my4id=findbigid(summy,);
int his4id=findbigid(sumhis,);
if(my4id>his4id){
yes();
}
else{
no();
}
continue;
}
if(nummy[]){
yes();
continue;
}
if(nummy[]){
if(!numhis[]){
yes();
continue;
}
int my3id=findbigid(summy,);
int his3id=findbigid(sumhis,);
if(my3id>his3id){
yes();
continue;
}
if(nummy[]&&!numhis[]){
yes();
continue;
}
if(nummy[]&&!numhis[]){
yes();
continue;
}
}
if(nummy[]){
if(!numhis[]&&!numhis[]){
yes();
continue;
}
int my2id=findbigid(summy,);
int his2id=findbigid(sumhis,);
if(my2id>his2id){
yes();
continue;
}
}
int my1id=findbigid(summy,);
int his1id=findbigid(sumhis,);
if(my1id>his1id){
yes();
continue;
}
no();
}
}
return ;
}

end

2014 Multi-University Training Contest 6的更多相关文章

  1. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  2. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 2014 Multi-University Training Contest 9#11

    2014 Multi-University Training Contest 9#11 Killing MonstersTime Limit: 2000/1000 MS (Java/Others)   ...

  4. 2014 Multi-University Training Contest 9#6

    2014 Multi-University Training Contest 9#6 Fast Matrix CalculationTime Limit: 2000/1000 MS (Java/Oth ...

  5. 2014 Multi-University Training Contest 1/HDU4861_Couple doubi(数论/法)

    解题报告 两人轮流取球,大的人赢,,, 贴官方题解,,,反正我看不懂.,,先留着理解 关于费马小定理 关于原根 找规律找到的,,,sad,,, 非常easy找到循环节为p-1,每个循环节中有一个非零的 ...

  6. 2014 Multi-University Training Contest 1/HDU4864_Task(贪心)

    解题报告 题意,有n个机器.m个任务. 每一个机器至多能完毕一个任务.对于每一个机器,有一个最大执行时间Ti和等级Li,对于每一个任务,也有一个执行时间Tj和等级Lj.仅仅有当Ti>=Tj且Li ...

  7. hdu 4937 2014 Multi-University Training Contest 7 1003

    Lucky Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) T ...

  8. hdu 4941 2014 Multi-University Training Contest 7 1007

    Magical Forest Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  9. hdu 4939 2014 Multi-University Training Contest 7 1005

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  10. hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4930 Fighting the Landlords Time Limit: 2000/1000 MS ...

随机推荐

  1. [老老实实学WCF] 第一篇 Hello WCF

    老老实实学WCF  第一篇 Hello WCF WCF(Windows Communication Foundation)是微软公司推出的面向服务技术的集大成者,涵盖继承了其之前发布的所有的分布式应用 ...

  2. 【学习笔记】【C语言】第一个C程序

    1.新建C语言程序 *打开Xcode  *新建文件  *选择C语言程序  *输入程序名称  *选择存放路径  *创建完成后  2.也可以用终端来创建  通过指令来创建.c文件   3.编写代码  4. ...

  3. (转)hessian源码分析(一)------架构

    在计费中心的对外交互这块采用了hessian,有必要对hessian的运行机理和源码做一定的解析. 大致翻了翻源码后,发现hessian的主要结构分客户端与服务端,中间基于http传输.客户端主要做的 ...

  4. 真正明白C语言二级指针(转载)

    指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的 ...

  5. 一个适用于层级目录结构的makefile模版

    今天写了个层次化的Makefile模版,用来自动化编译项目,这个模版应当包含以下功能: 适用于层次化结构,Makefile主要内容都放在顶层目录下的Makefile.env中,子层Makefile包含 ...

  6. NFS网络操作系统介绍以及相关应用

    1. NFS服务简介 NFS是Network File System 的缩写,中文名称为网络文件系统,由Sun公司开发,功能是通过网络让不同的机器.不同的操作能够彼此分享数据,让应用程序在客户端通过网 ...

  7. 《搭建更新DNS集群服务》RHEL6

    DNS服务器的更新: 一听就知道不止一台的DNS服务器,要是一台也用不着更新对吧?一般都是DNS集群. 一台DNS更新了,添加一条数据,下面的都要跟着它变. 主DNS服务器的配置 首先先配置DNS服务 ...

  8. js设计模式(9)---代理模式

    0.前言 KG.PP被交易到了布鲁克林篮网,我的心情很复杂,一方面为他们不能终老celtics感到惋惜,另一方面为他们能够再次冲击总冠军感到高兴.从07年以来,作为一个铁杆celtics球迷,他们给我 ...

  9. JS定时器实例解析

    在javascritp中,有两个关于定时器的专用函数. 分别为:1.倒计定时器:timename=setTimeout("function();",delaytime);2.循环定 ...

  10. centos系统下安装使用composer教程

    Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages" ...