- 博客(39)
- 资源 (5)
- 收藏
- 关注
原创 山东省第二届ACM大学生程序设计竞赛 Sequence
#include #include #include #include #include #include using namespace std;long long dp[1009],sum[1009],a[1009];int main (){ int t; scanf("%d",&t); int n,m; while(t--) { scanf(
2017-04-28 15:42:47 406
原创 第二届山东ACM省赛 Crack Mathmen
#include #include #include #include #include #include using namespace std;//快速幂int a[10009];const int mod=997;int pow_quick(int x,int n){ int sum=1; while(n) { if(n%2)su
2017-04-28 13:53:16 319
原创 山东省第二届ACM省赛 Binomial Coeffcients(组合数学)
#include #include #include #include #include using namespace std;long long mod=10000003; const int N=1009;int a[N][N];void init(){a[0][0]=0;for(int i=1;i<N;i++){a[i][1]=i,a[i][i]=1,a[i
2017-04-27 21:27:02 364
原创 山东省第二届ACM省赛 Identifiers
#include #include #include #include #include using namespace std;int main (){ int n; scanf("%d%*c",&n); char s[110]; for(int i=1;i<=n;i++) { gets(s); int len; len=s
2017-04-27 20:50:49 413
原创 山东省第二届ACM省赛 The Android University ACM Team Selection Contest
简单题,一个排序,然后记住是否应输出#include #include #include #include #include using namespace std;struct node{ char s[40]; int sex,t,p,i;}a[10009],b[10009];bool v[10009];bool cmp(node a,node b)
2017-04-27 20:39:42 403
原创 A New Stone Game POJ 1740
*题目大意: 参考:http://blog.csdn.net/zhang20072844/article/details/8113381* 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,* 第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余* 石子的一部分分给其它的某些堆。最后谁无子可取即输。*解题思路:* 1、先考虑1堆的时候,1堆当然是N点(必胜点),*
2017-04-27 17:02:53 236
原创 POJ 1067 取石子游戏(威佐夫博弈)
这个黄金分割数是重点。。。#include #include #include using namespace std;const double q = (1 + sqrt(5.0)) / 2.0; // 黄金分割数int Wythoff(int a, int b){ if (a > b) swap(a, b); int k = b - a; i
2017-04-27 16:33:05 234
原创 hdu 2089 不要62(数位dp)暴力
#include#include#include#include#define maxn 1000010using namespace std;int dp[12][3];//dp[i][0],表示不存在不吉利数字//dp[i][1],表示不存在不吉利数字,且最高位为2//dp[i][2],表示存在不吉利数字void init(){ memset(dp,0,size
2017-04-27 15:46:05 369
原创 HDU 4405 Aeroplane chess(全期望公式-概率dp)
#include#include#include#include#define maxn 1000010using namespace std;int v[100009];double dp[100009];int main(){ int n,m,a,b; while(~scanf("%d%d",&n,&m)&&n) { memset(v,
2017-04-26 20:25:27 347
原创 hdu 1561 The more, The Better(树形dp)
dp[root][i]root代表这是第几个节点,i代表在root这个节点攻陷的城市数量#include#include#include#include#define maxn 1000010using namespace std;int dp[210][210],fa[210],bro[210],son[210],c[210];int n,p;void dfs(int roo
2017-04-26 19:37:38 218
原创 ytu oj 动态规划进阶题目之Zipper
#include#include#include#define maxn 1000010using namespace std;int dp[204][204];//dp[i][j]代表s1 前i位 和s2前 j位 能否组成s前 i+j位int main(){int t;scanf("%d%*c",&t);for(int cnt=1;cnt<=t;cnt++){ c
2017-04-24 16:41:19 1055
原创 ytu oj 动态规划进阶题目之开餐馆
dp[i][0]代表第i个餐馆没有被选中,dp[i][1]代表第i个餐馆被选中所以状态转移方程看代码-_-#include#include#include#define maxn 1000010using namespace std;int a[1009],b[1009],dp[1009][2];int main(){int t;scanf("%d",&t);while
2017-04-24 13:44:42 858
原创 山东省第七届ACM省赛 Swiss-system tournament
用并归排序改别人的代码,自己的数组越界boom,怎么都找不到bug,气死了,求大神改正#include using namespace std;const int Max = 100100;struct node{ int sore; int ali; int Id; bool operator < (const node &a)cons
2017-04-20 17:43:00 389
原创 山东省第七届ACM省赛 Triple Nim
如果 n 是 奇数,直接输出 0.如果是偶数,并且是 2 的某个次方,输出 0.否则统计二进制中 1 的个数。两个 1 答案为 1三个 1 答案为 4四个 1 答案为 13五个 1 答案为 40六个 1 答案为 121可以把答案单独开个数组 F[ N ] = F [ N -1 ] * 3 +1;
2017-04-20 16:21:31 261
原创 山东省第七届ACM省赛 Feed the monkey
开始以为是一道组合数学,看了别人的题解发现这是dp 开始也应该想到,必须一步步递推,所以应该是dpdp[i][j][k][s]i代表第一种水果剩下的数量,j代表第二种水果剩下的数量,k代表第三种水果剩下的数量,s代表这是第几种水果睡前一题#include #include #include using namespace std;const int mod=10000000
2017-04-18 19:46:48 452
原创 山东省第七届ACM省赛 Execution of Paladin
#include #include #include #include #define ll long longusing namespace std;int main(){int t;int n,h;char s[50];scanf("%d",&t);while(t--){ scanf("%d%d%*c",&n,&h); int M,B,O;
2017-04-18 16:48:42 335
原创 poj 3440 Coin Toss (数学方法)
#include #include #include #include #define ll long long/*占一格或者多格求圆心占得面积除以总面积*/using namespace std;const double PI=acos(-1.0);int main(){ double m,n,c,t,ans[4]; int cnt=1; int k; cin>>
2017-04-18 16:01:16 963
原创 poj 3071 Football
题目大意:有2^n个队伍,输入每个队赢其他队伍的概论,求出最可能拿冠军的队伍#include #include #include #define ll long long/*通过二进制可以发现规律,所有高位是一样的,第i位刚好相反,所以用位运算可以巧妙解决,见代码*/using namespace std;double p[200][200];double dp[8][
2017-04-18 13:52:15 260
原创 poj 2891 Strange Way to Express Integers(中国剩余定理)
开始的忘了,又看了一个版本的,[衰]转载:/**********************一般模线性方程组***********************/同样是求这个东西。。X mod m1=r1X mod m2=r2.........X mod mn=rn首先,我们看两个式子的情况X mod m1=r1……………………………………………………
2017-04-17 20:46:52 277
原创 poj 1026 Cipher(置换群)
先找到循环节,再用m对循环节的长度取模即可.#include#include#include#include#include#includeusing namespace std;const int N=205;int a[N],b[N][N],v[N],num[N]= {0};int main(){ int n; while(~scanf("%d",&n)
2017-04-16 16:08:20 300
原创 poj 1286 Necklace of Beads
对应题目的翻转问题,分奇偶讨论。奇数时,如题图右,对称轴是一个珠子到圆心的连线,一共n条。选定对称轴后,对称轴上的一个珠子构成一个循环,其他n-1个珠子分别以对称轴对称构成(n-1)/2个循环,所以循环节的个数是 1 + (n – 1) / 2 = (n + 1) / 2 。偶数时,如题图左,对称轴可能是两个珠子的连线,一共 n / 2条。选定对称轴后,对称轴上的两个珠子构成两个循环,其他
2017-04-14 16:41:01 294
原创 poj 2892 Tunnel Warfare(树状数组+二分)
#include#include#include#include#includeusing namespace std; #define N 55010int c[N],a[N],v[N];int lowbit(int x){ return x&(-x);}void add(int x,int d){ while(x<N) { c[x
2017-04-12 21:45:45 316
原创 poj 2352 Stars(树状数组)
树状数组不能处理0,树状数组不能处理0,树状数组不能处理0,重要的事情说3遍。#include #include #include #include using namespace std;#define LL long longconst int N=32010;int d[N],c[N];int lowbit(int x){ return x&(-x);}vo
2017-04-12 20:26:07 324
原创 poj 2482 Stars in Your Window (线段树+平面扫描)
思路如果硬来肯定超时,所以线段树。数据处理,把x的点的亮度为k,x+w的亮度为-k,就是如果超出他的范围,就减去k,这样用线段树求区间最大值就行了#include #include #include #include using namespace std;#define LL long long#define MAX_N 10000LL xs[MAX_N]; //
2017-04-12 19:35:31 231
原创 Frequent values POJ - 3368 (RMQ)
#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3fusing namespace std;/*count1[i]记录出现a[i]的次数,left1记录相同数字的左节点,right记录相同数字的右节点,num记录第i个数是第k个相同的数*/int dp
2017-04-11 15:07:19 272
原创 POJ - 3264 Balanced Lineup(RMQ)
#include#include#include#include#include#include#include#includeusing namespace std;int dp[50009][30]={0},dp1[50009][30]={1000009};int a[50009],n;void init(){ for(int j=0;(1<<j)<=n;j+
2017-04-11 12:56:43 247
原创 poj 2492 A Bug's Life
#include#include#include#include#include#include#include#includeusing namespace std;int n;int f[10009];void init(){ for(int i=1; i<=10000; i++) f[i]=i;}int find1(int x){
2017-04-10 21:20:00 233
原创 HDU 5066 Harry And Physical Teacher
这个题的话同方向的小车和球,可以把小车当做一个有速度的墙,什么物体撞到他都会原路返回,球的速度x,墙的速度y,球相对于墙速度为x-y所以返回的速度为(y-x)加上他们都在正方向的的一个y,所以速度为2*y-x没有提示多组数据,恶心了#include#include#include#include#includeusing namespace std;int
2017-04-09 09:40:14 247
原创 蓝桥杯
交换瓶子有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行: 一个正整数N(N第
2017-04-07 14:54:54 370
原创 蓝桥杯 四平方和
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:
2017-04-07 14:53:40 222
原创 蓝桥杯 剪邮票
#include #include #include #include #include using namespace std;/*注意4和5不相连 */int main(){ int a[6],sum=0;for(a[1]=1;a[1]<=8;a[1]++)for(a[2]=a[1]+1;a[2]<=9;a[2]++)for(a[3]=a[2]+1;a[3]<=10
2017-04-07 14:52:34 334
原创 蓝桥杯 方格填数
方格填数如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共
2017-04-07 14:51:45 279
原创 蓝桥杯 抽签
抽签X星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[] 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFF
2017-04-07 14:50:59 411
转载 蓝桥杯 快速排序
快速排序排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#include
2017-04-07 14:50:14 392
原创 蓝桥杯 凑算式
B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?
2017-04-07 14:49:20 294
原创 蓝桥杯 生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。#include using namespace std;/* run this
2017-04-07 14:48:25 568 2
原创 蓝桥杯 煤球数目
有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。不是5050#include using namespace std;
2017-04-07 14:47:37 689 1
原创 蓝桥杯原题--核桃的数量
#include #include #include #include #include using namespace std;int gcd(int a,int b){if(b==0)return a;else return gcd(b,a%b); } int main(){ int a,b,c,d; while(cin>
2017-04-07 13:47:20 338
原创 网易云音乐——推荐歌曲都能推荐到心坎
网易云音乐推荐歌曲,总是能推荐到我喜欢的歌,让我感觉到大数据的来临,收集我喜欢的歌,我听过的歌,和其他人比对,听过相同歌的人,喜欢听的其他歌曲,根据大数据推荐最佳歌曲,我感觉这很神奇,也会让网易云音乐成为音乐届的巨头,这会让网易云音乐强势崛起,占领市场,因为我在其他的音乐播放器上没发现这个功能。我这种歌盲,动不动就歌慌,非常适合我。我感觉我是一个非常普通的民众,适合我就会适合很多人,我是看到一个学
2017-04-07 13:08:24 1612
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人