A.uva 12709 Falling ANTS

首先按照H排序,然后按照L*H*W排序 

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#define maxn 100009
#define inf 100000
using namespace std;
int main()
{
int n,a,b,c;
while()
{
int ans=,ans_h=;
scanf("%d",&n);
if(n==)break;
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(c>ans_h)ans_h=c,ans=a*b*c;
else if(c==ans_h && a*b*c>ans)ans=a*b*c;
}
printf("%d\n",ans);
}
return ;
}

 D uva 12712 Pattern Locker

题目大意:一个L*L的安卓密码锁,问最少按M个钮,最多按N个扭,一共有多少中不同的方式加锁,注意正常来说1 3 2,是不合法的,但在这里是合法的,但同一个按钮还是不能走两次

思路:排列组合一下就出来了,比如第一个样例:9*8*7*6+9*8*7*6*5+9*8*7*6*5*4+9*8*7*6*5*4*3+9*8*7*6*5*4*3*2+9*8*7*6*5*4*3*2*1

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#define maxn 100009
#define inf 100000
#define MOD (10000000000007ll)
using namespace std;
int main()
{
int t,cas=;
scanf("%d",&t);
while(t--)
{
long long a,b,c;
scanf("%lld%lld%lld",&a,&b,&c);
long long u=a*a,ans=;
for(int i=;i<=b;i++)ans=ans*(u-i+)%MOD;
long long temp=ans;
for(int i=b+;i<=c;i++)
temp=(temp*(u-i+))%MOD,ans=(ans+temp%MOD)%MOD;
printf("Case %d: %lld\n",++cas,ans);
}
return ;
}

E uva 12713 Pearl Chains

题目大意:有三种类型的珍珠,每种类型的珍珠分别能够染色x,y,z种颜色,1号类型珍珠加3号类型珍珠共A个,2号类型珍珠和3号类型珍珠共B个,问有多少种摆珍珠的方案

思路:公式在比赛的时候就推出来了,枚举2号类型的珍珠个数即可 ΣC(i,A+B-i)*C(A-i,A+B-2*i)*xA-1*yB-1*zi,关键数字太大,还需要lucas定理

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#include<queue>
#define MOD 1000003
#define maxn 1000000
using namespace std;
long long fac[MOD+],inv[MOD+],a,b,x,y,z;
long long mpow(long long a,long long n){
if(n==)return ;
if(n==)return a%MOD;
if(n&)return (a*mpow(a,n-))%MOD;
else{
long long u=mpow(a,n>>);
return (u*u)%MOD;
}
}
long long C(long long m,long long n)
{
if(m==)return ;
return ((fac[n]*inv[m]%MOD)*inv[n-m])%MOD;
}
int main()
{
int t;
fac[]=inv[]=;
for(int i=;i<=MOD;i++)
{
fac[i]=(fac[i-]*(long long)i)%MOD;
inv[i]=mpow(fac[i],MOD-);
// cout << fac[i]<<" "<<inv[i]<<endl;
}
scanf("%d",&t);
//printf("%lld\n",C(2,5));
while (t--)
{
long long ans=;
scanf("%lld%lld%lld%lld%lld",&a,&b,&x,&y,&z);
x%=MOD;y%=MOD;z%=MOD;
while(a||b)
{
long long u=a%MOD,v=b%MOD,min_x=min(u,v),ret=,temp=;
for(int i=;i<=min_x;i++)
{
temp=(C(i,u+v-i)*C(u-i,u+v-i-i))%MOD;
temp=(temp*mpow(x,u-i))%MOD;
temp=(temp*mpow(y,v-i))%MOD;
temp=(temp*mpow(z,i))%MOD;
ret=(ret+temp)%MOD;
}
ans=(ans*ret)%MOD;
a/=MOD,b/=MOD;
}
printf("%lld\n",ans);
}
return ;
}

F uva 12714 Two Points Revisited

题目大意:给你两个点,要你再求两点,使得与题目中给出的两点垂直,并且两点要在矩形框内,输出任意一种即可

思路:思路很多,CP和zyx分别有自己的思路,其实就是个sb题,我的话先求出任意一条垂直的两点,然后将其平移到第一象限,然后再将其移到第一象限的左下角即可

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#define maxn 100009
#define inf 100000
#define MOD (10000000000007ll)
using namespace std;
int main()
{
int t,cas=,x1,y1,x2,y2,x3,x4,y3,y4;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x3=x1,y3=y1,x4=x1+y2-y1,y4=y1-(x2-x1);
if(x3<)x4-=x3,x3=;
if(y3<)y4-=y3,y3=;
if(x4<)x3-=x4,x4=;
if(y4<)y3-=y4,y4=;
int u=min(y4,y3);
y4-=u,y3-=u;
u=min(x4,x3);
x4-=u;x3-=u;
printf("Case %d: %d %d %d %d\n",++cas,x3,y3,x4,y4);
}
return ;
}

H UVA 12716 GCD XOR

题目大意:有多少小于等于N的数对(A,B),满足GCD(A,B)=A XOR B 1<=B<=A<=N

思路:感觉能想出这题真心好不容易!!!关键要知道一个结论:设GCD(A,B)= C ,A-C=B

以上结论在打过N张表后被总结下来,其中ZYX在这道题几乎耗了3个多小时TUT,知道结论以后暴力即可!

然后照着结论推证明

A-B<=A XOR B<=A+B  (由于XOR可以理解成不带进位的加法,同样也可以理解成不带借位的减法)

∵A XOR B=GCD(A,B)

∴A-B<=GCD(A,B)<=A+B

同时由辗转相减法可得GCD(A,B)=GCD(A-B,B)<=A-B

即A-B<=GCD(A,B)<=A-B

QED.

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#include<queue>
#define maxn 30000000
#define inf 100000
#define MOD (10000000000007ll)
using namespace std;
int ans[maxn];
int main()
{
for(int i=;i<=maxn;i++)
for(int j=;j*i<=maxn;j++)
{
int u=i*j,b=u-i;
if((b^u)==i)ans[u]++;
}
for(int i=;i<=maxn;i++)ans[i]+=ans[i-];
int t,n,cas=;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("Case %d: %d\n",++cas,ans[n]);
}
return ;
}

I UVA 12717 Fiasco

题目大意:前面给了一坨眼睛都快看出血的代码,其实是prim,所以它做的应该是求出以s为根的最小生成树,而要最小生成树上的边正好等于最短路树

思路:这题的话DFS序和BFS序应该都行,一开始看样例构造了个BFS序就过了,证明的话以DFS序为例子,假设现在正在遍历非树边,那它的序号一定比所有的树边大,并且当前构成环,由MST回路性质可得该边肯定不是MST上的边,很明显该边也肯定不是最短路树上的边

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#include<queue>
#define maxn 250000
#define inf 100000
#define MOD (10000000000007ll)
using namespace std;
int cnt=;
int head[maxn],next[maxn],point[maxn],now=;
int ans[maxn],n,m,source,x[maxn],y[maxn],v[maxn];
bool visit[maxn],visit1[maxn];
void add(int x,int y,int v)
{
next[++now]=head[x];
head[x]=now;
point[now]=y;
}
void bfs(int s)
{
queue<int>q;
q.push(s);
visit[s]=;
while(!q.empty())
{
s=q.front();
q.pop();
for(int i=head[s];i;i=next[i])if(!visit1[i])
{
visit1[i]=visit1[i^]=;
int u=point[i];
ans[i>>]=++cnt;
if(!visit[u])q.push(u),visit[u]=;
}
}
}
int main()
{
int t,cas=;
scanf("%d",&t);
while(t--)
{
now=; cnt=;
memset(visit,,sizeof(visit));
memset(visit1,,sizeof(visit1));
memset(head,,sizeof(head));
scanf("%d%d%d",&n,&m,&source);
printf("Case %d:\n",++cas);
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x[i],&y[i],&v[i]);
add(x[i],y[i],v[i]);
add(y[i],x[i],v[i]);
}
bfs(source);
//printf("%d\n",cnt);
for(int i=;i<=m;i++)
{
printf("%d %d %d\n",x[i],y[i],ans[i]);
}
}
return ;
}

J  uva 12718 Dromicpalin Substrings

题目大意:一个字符串,有多少连续的子串可以重排成回文串

思路:显然能够重排成回文串的字符串奇数个字符的个数小于等于1,然后O(n^2)扫一遍就行

 #include<iostream>
#include<cstdio>
#include <math.h>
#include<algorithm>
#include<string.h>
#define maxn 100009
#define inf 100000
#define MOD (10000000000007ll)
using namespace std;
char ch[maxn];
int visit[];
int main()
{
int t,cas=;
scanf("%d",&t);
while(t--)
{
int ans=,odd;
scanf("%s",ch+);
int len=strlen(ch+);
for(int i=;i<=len;i++)
{
memset(visit,,sizeof(visit));
for(int j=i;j>=;j--)
{
if(i==j)
{
visit[ch[i]-'a']=;
odd=;
ans++;
}
else
{
visit[ch[j]-'a']=visit[ch[j]-'a']+;
if(visit[ch[j]-'a']&)odd++;
else odd--;
if(odd<=)ans++;
}
}
}
printf("Case %d: %d\n",++cas,ans);
}
return ;
}

2013   Dhaka 区域赛的更多相关文章

  1. 【2013南京区域赛】部分题解 hdu4802—4812

    上周末打了一场训练赛,题目是13年南京区域赛的 这场题目有好几个本来应该是我擅长的,但是可能是太久没做比赛了各种小错误代码写的也丑各种warusn trush搞得人很不爽 全场题之一的1002也没有想 ...

  2. 2013 ACM区域赛长沙 C Collision HDU 4793

    题意:在平面上0,0点,有一个半径为R的圆形区域,并且在0,0点固定着一个半径为RM(<R)的圆形障碍物,现在圆形区域外x,y,有一个半径 为r的,并且速度为vx,vy的硬币,如果硬币碰到了障碍 ...

  3. HDU 4793 Collision(2013长沙区域赛现场赛C题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4793 解题报告:在一个平面上有一个圆形medal,半径为Rm,圆心为(0,0),同时有一个圆形范围圆心 ...

  4. HDU 4791 Alice's Print Service(2013长沙区域赛现场赛A题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4791 解题报告:打印店提供打印纸张服务,需要收取费用,输入格式是s1 p1 s2 p2 s3 p3.. ...

  5. 2013 ACM区域赛长沙 H zoj 3733 (hdu 4798) Skycity

    题意:一个圆台,底面和顶面半径分别为R,r,然后高度为H,一共F层,每层高度一样,然后要在每层的天花板上贴方格玻璃,方格玻璃要满足以下几个条件: 方格玻璃面积不能小于S,且方格玻璃要围成一个正多边形, ...

  6. 2013 ACM区域赛长沙 I LIKE vs CANDLE(ZOJ3734) 很好的一道树形DP

    题意:一棵有根树,每个节点都有一个value值和属性(zan或是 CANDLE).你可以通过反转一些点的属性,反转一个点时候,它的整个子树都会被反转属性.有些点反转消耗代价为X,有些为Y.你的目标的是 ...

  7. 2013 ACM区域赛长沙 A Alice’s Print Service HDU 4791

    题意:就是一个打印分段收费政策,印的越多,单张价格越低,输入需要印刷的数量,求最小印刷费用一个细节就是,比当前还小的状态可能是最后几个. #include<stdio.h> #includ ...

  8. 2013 ACM区域赛长沙 K Pocket Cube hdu 4801

    题意:给了一个2*2的魔方..每步操作可以将任意一面翻转90度..现在问在N(<=7)步内.最多能翻出几面相同的. 直接打表模拟每种翻转情况 #include<cstdio> #in ...

  9. 【2013杭州区域赛】部分题解 hdu4770—4780

    1008: 题意: 有20W个数,每个数都在20W以内,现在有20W个询问,每次询问L,R区间内不会打架的数有多少个 定义两个数不互质 就会打架 解法: 脑洞很大的一道题,先要进行预处理,对每一个数预 ...

  10. 【2013长沙区域赛】部分题解 hdu4791—4801

    1001: 签到题,二分一下即可 代码: #include <set> #include <map> #include <cmath> #include <c ...

随机推荐

  1. python打飞机pro版

    # -*- coding: utf-8 -*- import pygame from sys import exit import random pygame.init() screen = pyga ...

  2. “流”的思维—Workflowy

    3.“流”的思维—Workflowy是我最喜欢的”流“的工具(WorkFlowy - Organize your brain.)我觉得,让发散性的思维更具实施性,必须分步操作,必须有先后,必须单线程. ...

  3. Luogu P5352 Terrible Homework

    神仙@TheLostWeak出的题,因为他最近没时间所以我先写一下sol(其实我也没什么时间) 作为一道简单的数据结构题想必大家都能看出必须用LCT维护信息吧 一个朴素的想法就是直接维护四种操作的值, ...

  4. 卷积网络中的通道(Channel)和特征图

    转载自:https://www.jianshu.com/p/bf8749e15566 今天介绍卷积网络中一个很重要的概念,通道(Channel),也有叫特征图(feature map)的. 首先,之前 ...

  5. eltwise层

    http://blog.csdn.net/u013989576/article/details/73294131 layer { name: "fuse" type: " ...

  6. python暴力破解wifi密码程序

    import time # 破解wifi库 import pywifi from pywifi import const class PoJie(object): def __init__(self, ...

  7. html中常见符号的代码表示

    HTML中空格的集中代码表示: HTML中空格   不断行的空白(1个字符宽度)     半个空白(1个字符宽度)     一个空白(2个字符宽度)     窄空白(小于1个字符宽度)   其他常见的 ...

  8. fckeditor配置详解

    使用配置设置: . FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称 . FCKConfigFCKConfig.EditorAreaC ...

  9. 请大神看看10.10Beta1的AppleRTC怎么破?原版会导致BIOS重置!

    看起来 跟10.9一样 sudo perl -pi -e 's|\x75\x2e\x0f\xb6|\xeb\x2e\x0f\xb6|' /System/Library/Extensions/Apple ...

  10. css去除链接 input 虚框

    /* css去掉虚框 */ :focus{-webkit-outline-style:none;-moz-outline-style:none;-ms-outline-style:none;-o-ou ...