自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sky_zdk的博客

相信奇迹的人本身就和奇迹一样了不起

  • 博客(58)
  • 收藏
  • 关注

原创 LA 5092 Permutation Counting

#include#include#define MOD 1000000007using namespace std;long long dp[1060][1060];void init(){ dp[1][0]=1; dp[1][1]=0; for(int i=2;i<=1000;i++) for(int j=0;j<i;j++) { dp[i][j]=(dp[i-1][j

2017-07-31 15:48:26 240

原创 uva 10237 n x n棋盘上放k个棋子 棋子不能在同一斜线上 求总类数

#include#includeusing namespace std;long long dp1[36][96],dp2[36][96];int n,k;void init(){ for(int i=0;i<=36;i++) dp1[i][0]=dp2[i][0]=1; for(int i=1;i<=36;i++) for(int j=1;j<=2*i-1;j++) {

2017-07-30 10:51:29 664

原创 uva 11481 一个序列前m个中有k个不动,其他可动可不动 共有几种情况

#include#include#define MOD 1000000007using namespace std;int n,m,k;long long res,d[1060],c[1060][1060];;void init(){ d[0]=1; d[1]=0; for(int i=2;i<=1000;i++) d[i]=((d[i-1]+d[i-2])%MOD * (i

2017-07-30 09:43:43 348

原创 uva 11645 求连续的11有多少个

#include#includeusing namespace std;const long long MOD=1e13;long long a,b,x;void add(long long t){ b+=t; a+=b/MOD; b%=MOD;}void solve(){ long long l=1,r=x; a=0,b=0; while(r) { add((

2017-07-28 15:58:45 257

原创 uva 1350

#include#includeusing namespace std;int dp[1001],sum[1001];void init(){ dp[1]=dp[2]=1; for(int i=3;i<=100;i++) dp[i]=dp[i-1]+dp[i-2]; sum[0]=0; for(int i=1;i<=100;i++) { sum[i]=sum[i-1]+d

2017-07-28 15:00:59 224

原创 LA 4064 求n个点 可以组成多少个锐角或者直角三角形

#include#include#include#include#define eps 1e-8#define PI acos(-1.0)using namespace std;struct node{ double x,y;}p[1260];double d[2560];int dcmp(double x){ if(fabs(x)<eps) return 0; e

2017-07-28 12:20:19 1319

原创 uva 11529 求一个平面内有多少个凸边形 或者求所有三角形包含点的总个数

#include#include#include#include#define PI acos(-1.0)using namespace std;struct node{ double x,y;}p[1260];double d[2560],res;double C(int n,int m){ double ans=1; if(m>n) return 0; for(

2017-07-28 10:41:31 338

原创 LA 5846 n个点 任意2点间有一条红色,或者蓝色边 求单色三角形的个数

#include#includeusing namespace std;int d[1060][1060];int main(){ int T,n; scanf("%d",&T); while(T--) { int res=0; scanf("%d",&n); for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) {

2017-07-27 10:50:38 938

原创 LA 3720 Highway n x m的点阵 有多少条直线穿过至少2个点

#include#includeusing namespace std;int d[360][360],n,m;int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}void init(){ for(int i=1;i<=300;i++) for(int j=1;j<=300;j++) {

2017-07-27 10:33:45 554

原创 uva 10883

#include#include#include#includeusing namespace std;int main(){ int T,t=1,n; scanf("%d",&T); while(T--) { scanf("%d",&n); double res=0,c1=0,t1=(n-1)*log(2); for(int i=0;i<n;i++)

2017-07-27 09:11:29 311

原创 uva 11461

#include#includeusing namespace std;int main(){ int a,b; while(~scanf("%d%d",&a,&b)&&(a+b)) { int l=-1,r=-1; for(int i=1;;i++) { if(l==-1&&i*i>=a) l=i; if(i*i>b) { r=i;

2017-07-26 15:53:45 372

原创 uva 10791 和最小的LCM

#include#include#includeusing namespace std;int main(){ long long n; int t=1; while(~scanf("%lld",&n)&&n) { long long x=n,res=0,len=(long long)sqrt(n); int cnt=0; for(long long i=2;i1;i

2017-07-26 15:48:55 405

原创 uva 11489

#include#includeusing namespace std;int len;char str[1000];int main(){ int T,t=1; scanf("%d",&T); while(T--) { int flag=0,total=0,ans=0; scanf("%s",str); len=strlen(str); for(int i=0

2017-07-26 14:53:09 548

原创 uva 11609

#include#include#define MOD 1000000007using namespace std;long long qcal(int n){ long long res=1,t=2; while(n) { if(n&1) res=(res*t)%MOD; t=(t*t)%MOD; n>>=1

2017-07-26 13:08:39 358

原创 uva 11076 给n个数字 n个数字的所有排列出来的数 相加 求和

#include#includetypedef unsigned long long ull;using namespace std;ull f[16];int n,num[16];int main(){ f[0]=f[1]=1; for(int i=2;i<=12;i++) f[i]=f[i-1]*i; while(~scanf("%d",&n)&&n) { mems

2017-07-26 12:49:23 1221

原创 uva 10892 求a,b 最小公倍数为m a,b这样的数有多少个

#include#includeusing namespace std;int main(){ long long n; while(~scanf("%lld",&n)&&n) { long long res=1; long long t=n; for(int i=2;i*i<=n;i++) { int cnt=0; while(n%i==0) {

2017-07-26 11:35:25 283

原创 LA 4593 给一个无向图 让每一条边有方向 使得这个图无环 且最长链最短

#include#include#define INF 0x3f3f3f3fusing namespace std;int dp[1<<15],vis[1<<15],path[1<<15];char str[160][6];int dfs(int s){ if(dp[s]!=-1) return dp[s]; int t=(1<<15)-s-1; dp[s]=INF; fo

2017-07-26 10:56:48 1260 1

原创 LA 4987 n个人要到m个避难所 每个避难所最少一人 求所用最短距离

#include#include#includeusing namespace std;const long long INF=1e18;struct node{ int val,lo; bool operator<(const node &x)const { return val<x.val; }}a[4060],b[4060];long long dp[4060];

2017-07-26 10:00:57 1092

原创 uva 10780

#include#include#include#define INF 0x3f3f3f3fusing namespace std;int cal(int n,int m){ int res=0; while(n) { res+=n/m; n/=m; } return res;}int main(){ int T,n,m,t=1; scanf("%d",&T

2017-07-25 15:45:03 239

原创 uva 10943 计数

#include#includeusing namespace std;int dp[160][160];int main(){ int n,k; memset(dp,0,sizeof(dp)); for(int i=0;i<=100;i++) dp[1][i]=1; for(int i=2;i<101;i++) for(int j=0;j<101;j++) for(int

2017-07-25 15:05:52 182

原创 poj 2546 求2个圆相交的面积

#include#include#include#include#define PI acos(-1.0)using namespace std;double solve(double x1,double y1,double x2,double y2,double r1,double r2){ double d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2

2017-07-25 13:00:28 501

原创 uva 11889

#include#includeusing namespace std;int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b); }int main(){ int T,a,b,c; scanf("%d",&T); while(T--) { scanf("%d%d",&a,&c); if(c

2017-07-25 12:33:40 212

原创 uva 11388

#include#includeusing namespace std;int main(){ long long GCD,LCM; int T; scanf("%d",&T); while(T--) { scanf("%lld%lld",&GCD,&LCM); if(LCM%GCD==0) p

2017-07-25 12:15:43 246

原创 LA 4490 n本书 可以移动k本 使得混乱度最小

#include#include#include#define INF 0x3f3f3f3fusing namespace std;int n,k,vis[20],a[200];int dp[102][102][1<<8][10];int main(){ int t=1; while(~scanf("%d%d",&n,&k)&&n) { memset(vis,0,size

2017-07-25 11:49:45 452

原创 LA 4015 树形DP 在路程不超过k的情况下,求最多可到达多少节点

#include#include#includeusing namespace std;struct node{ int to,next,val;}e[1000];int head[1000],cnt,n,vis[1000],num[1000];int dp[560][560][2];void add_edge(int from,int to,int val){ e[cnt

2017-07-25 10:07:01 433

原创 LA 4394 刷字符串

#include#include#includeusing namespace std;char str1[1000],str2[1000];int dp[160][160][36];int dfs(int l,int r,int c){ if(l>r) return 0; if(dp[l][r][c]!=-1) return dp[l][r][c]; if((c==26&

2017-07-25 09:22:17 432

原创 uva 10817 状态压缩DP

#include#includeusing namespace std;#define min(x,y) ((x)>(y)?(y):(x)) #define INF 0x3f3f3f3fusing namespace std;int s,m,n,len,sum,cost[160];int dp[1000][1000],d[1000],vis[160];int solve(int s

2017-07-22 16:38:38 192

原创 uva 10564 DP+打印路径

#include#includeusing namespace std;int G[100][100];long long int dp[56][36][560];int main(){ int n,s; while(~scanf("%d%d",&n,&s)&&(n+s)) { for(int i=1;i<2*n;i++) { if(i<=n) f

2017-07-22 14:50:11 199

原创 LA 3530 Martian Mining

#include#include#includeusing namespace std;int we[560][560],ns[560][560],dp[560][560];int main(){ int n,m; while(~scanf("%d%d",&n,&m)&&(n+m)) { for(int i=1;i<=n;i++) for(int j=1;j<=m;j++

2017-07-22 13:31:48 336

原创 LA 4727 约瑟夫环 求最后n个数

#include#includeusing namespace std;int main(){ int T,n,k; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&k); int s=(k-1)%3; for(int i=4;i<=n;i++) s=(s+k)%i; printf("%d ",s+1); s

2017-07-22 13:05:46 244

原创 uva 11795 Mega Man‘s Missions’ 状态压缩DP

#include#includeusing namespace std;int s[100],d[1<<17];long long dp[1<<17];char str[100];int main(){ int T,n,t=1; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0;i<=n;i++) {

2017-07-22 12:06:11 227

原创 LA 4731 DP+贪心

#include#include #include#define INF 0x3f3f3f3fusing namespace std;bool cmp(int a,int b){ return a>b;}int dp[160][160];int d[160],sum[160];int main(){ int T,n,k; scanf("%d",&T); while(T

2017-07-22 10:44:00 428

原创 uva 11404

#include#include#include#include using namespace std;struct node{ int v; string s; bool operator>(const node &a)const { if(v==a.v) return s<a.s; else return v>a.v; }}dp[1010][1010]

2017-07-22 09:17:45 377

原创 uva 11552 DP

#include#include#include#define INF 0x3f3f3f3fusing namespace std;char str[1010];bool vis[200];int dp[1010][1010];int main(){ int T,k; scanf("%d",&T); while(T--) { memset(dp,0x3f,sizeof

2017-07-21 15:02:01 168

原创 uva 10534 波浪序列DP

#include#include#include#define INF 0x3f3f3f3fusing namespace std;int a1[10010],a2[10010],dp1[10010],dp2[10010],d1[10010],d2[10010];;int main(){ int n; while(~scanf("%d",&n)) { for(int i=0

2017-07-21 13:49:36 548

原创 LA 4256 Salesman

#include#include#includeusing namespace std;int d[260][260];int dp[260][260];int n,q,a[260];int main(){ int T; scanf("%d",&T); while(T--) { memset(d,0,sizeof(d)); memset(dp,0x3f,sizeof

2017-07-21 13:27:49 305

原创 uva 11584

把一个字符串分解成尽可能少的 回文子串

2017-07-21 12:43:15 205

原创 LA 3716

#include#include#include#includeusing namespace std;struct node{ int lo,v;}G[150005];bool cmp(const node &a,const node &b){ if(a.v==b.v) return a.lo<b.lo; else return a.v>b.v;}char str

2017-07-20 16:01:30 295

原创 LA 5052

#include#include#include#includeusing namespace std;int a[3050],lo[3050];int main(){ int n; while(~scanf("%d",&n)&&n) { int res=0; for(int i=0;i<n;i++) { int t; scanf("%d",&t)

2017-07-20 15:13:59 335

原创 LA 4356

#include#include#include#include#define PI acos(-1.0)using namespace std;struct node{ int x,y,r; double k; bool operator<(const node &a)const { return k<a.k; } void init() { scanf("%

2017-07-20 14:38:27 496

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除