- 博客(21)
- 资源 (5)
- 收藏
- 关注
原创 蓝桥杯 生命之树
#include #include#include #include #include #includeusing namespace std;int n;int map1[10008][10008],v[10008],a[10008];int max1=0;//思路:从子树开始找最大的值,更新节点是如果子树的节点会让自己的//值变大就加上,不然不加,每跟新一次节点就更新一次
2017-03-29 20:09:03 1034
原创 L3-008. 喊山 天梯初赛
#include #include #include #include #include using namespace std; struct node { int next1,next2,path; }a[10009]; int visit[10009];//visit代表是否访问过这个山头 void bfs(int x) {
2017-03-20 22:02:20 372
原创 L2-016. 愿天下有情人都是失散多年的兄妹-PAT团体程序设计天梯赛GPLT
#include #include #include #include using namespace std;struct node { int f, m, sex;};node v[100010];int level[100010];bool exist[100010];int main(){ int n,m,id,father,mother,a,b;
2017-03-20 20:41:02 415
原创 团体程序设计天梯赛 互评成绩
#include#include#include #include using namespace std;float f[10000];int main(){int n,k,m;cin>>n>>k>>m;float a,b;for(int i=0;i{ b=0; int max1=-1; int min
2017-03-16 20:44:23 497
原创 团体程序设计天梯赛-练习集-L2-013. 红色警报(dfs)
/*dfs 简单深搜,没想出来*/#include #include #include #include using namespace std;const int maxn=510;int vis[maxn],flag[maxn],map1[maxn][maxn];int n,m,k,area;void dfs(int x){ vis[x]=1; for
2017-03-16 18:30:53 455
原创 团体程序设计天梯赛 排座位
#include #include #include #include using namespace std;int n,m,k,map1[101][101],fa[101];void init(){ for(int i=1; i<=n; i++) fa[i]=i;}int find1(int a){ while(fa[a]!=a)
2017-03-16 15:02:39 437
原创 2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)
#include #include #include #include using namespace std;char s[100009],ch;int n;int main(){ while(~scanf("%d %c",&n,&ch)) { getchar(); gets(s); int len=strlen(s); if(n>=l
2017-03-14 18:50:29 559
原创 团体程序设计天梯赛-练习集L1-020. 帅到没朋友
#include #include #include #include #include using namespace std;bool p[99999+2];int main(){ int t,a; int b[10000]; while(~scanf("%d",&t)) { memset(p,0,sizeof(p));
2017-03-14 16:49:55 493
原创 团体程序设计天梯赛 大笨钟
#include #include #include using namespace std;int main(){ int a,b; while(~scanf("%d:%d",&a,&b)) { if(a>=0&&a<=11) { printf("Only %02d:%02d. Too early to
2017-03-14 11:44:48 620
原创 poj 3321 Apple Tree(树状数组)
我一直不知道树状数组和线段树有什么区别,算法不同,但我感觉他们解决的问题差不多。由于此题数据比较大(N另外为每一个节点赋一个左值和一个右值,表示这个节点的管辖范围。这样有了每个节点的左值和右值就可以用树状数组解决了树状数组详解:http://blog.csdn.net/clx55555/article/details/52261538#include
2017-03-14 10:05:33 332
原创 poj 2777 Count Color (线段树)
#include#include#include#include#includeusing namespace std; #define MAXN 100010 /* update是把一个区间内颜色相同的改成相同颜色 颜色不同为-1 query 是查询函数,如果颜色不是-1,就把这个颜色记录为1 最后所有在这个区间的颜色都加一起 */ struct node {
2017-03-10 15:42:39 226
原创 poj 2486 Apple Tree (树形dp)
题意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走V步,最多能遍历到的权值我们把背包的思想用到这里来,做的步数相当于背包的容量,点上的权值相当于价值,给定一定的背包容量,求最多能装进背包的价值设dp[0][s][j]表示从s(当前根节点)出发,走 j 步,回到s所能获得的最大权值 dp[1][s][j]表示从s(当前根节点)出发,走j步,不回到s所能获得
2017-03-09 15:16:55 269
原创 poj 1947 Rebuilding Roads
dp[s][i]:记录s结点,要得到一棵i个节点的子树去掉的最少边数 考虑其儿子k 1)如果不去掉k子树,则 dp[s][i] = min(dp[s][j]+dp[k][i-j]) 0 2)如果去掉k子树,则 dp[s][i] = dp[s][i]+1 总的为 dp[s][i] = min (min(dp[s][j]+dp[k][i-j]) , dp[s][
2017-03-08 21:40:05 329
原创 旋风十一人 观后感
旋风十一人是一部讲足球题材的电视剧,用了两天多,熬着眼看玩了。看完之后很久不能平静。不可否认这部电视有bug,毕竟不是现实,在圆满也不会和真的一模一样。但是他的魅力完全掩盖了他的瑕疵。穆帅之所以帅,因为他的责任感和他的执着。说实话他的责任感是特别强烈,不管是对学生,对校长,对朋友。对学生认真负责的态度,对学生的爱,激活的每个学生对足球的热爱,在足球上给了他们第二个生命。让他们真真正正的爱上足球
2017-03-06 20:06:20 468
原创 poj 2531 Network Saboteur
题意就是把节点分成A、B两组,节点间距C给了,要求解分组的方法,使得∑Cij (i∈A,j∈B)最大。#include #include #include #include #include #define MAX 25using namespace std;int a[MAX],b[MAX],map1[MAX][MAX],n;int max1=0;void cnt(int
2017-03-03 13:13:39 321
原创 高僧斗法 蓝桥杯
博弈题,nim博弈#include #include #include #include #include #define MAX 250using namespace std;int main(){ char s; int a[1004]; while(1) { int len=0; while(1) { scanf("%
2017-03-02 19:28:46 398
原创 poj 1704 Georgia and Bob
转化为nim博弈。如果是偶数两两组合。如果一个人把前面的棋子往左移动,另一个人把后面的棋子也往左移动。是一样的。如果是奇数 就加一个为0 的堆,两两组合#include#include #include #include#define MAX 1009using namespace std;int a[MAX];int main(){ int t; scan
2017-03-02 16:10:50 219
原创 nim博弈
nim取石子游戏, 有n堆石子,每堆有ai个石子,A和B轮流从非空的堆中取走至少一个石子。A先取,取光所有石子的一方获胜。当双方都采取最优策略时,谁能取胜?11a1 XOR a2 XOR……XOR an !=0 ->必胜态a1 XOR a2XOR……XOR an==0 ->必败态 取走一个石子 必胜态就是必败态了。必败态的二进制为1。从相应的石头堆取走相应的石子
2017-03-02 15:32:46 278
原创 poj 2348
#include#include #include#define MAX 1000010#define N 100010using namespace std;int main(){ int a,b; while(~scanf("%d%d",&a,&b)) { if(a==0||b==0)break; bool f=1; while(1)
2017-03-02 15:13:53 318
原创 poj 2484
#include#include #include#define MAX 1000010#define N 100010using namespace std;/*只要n>2 bob 和Alice采取相同的策略就能胜利*/int main(){ int n; while(~scanf("%d",&n)&&n) { if(n<=2)printf("
2017-03-02 14:41:37 431
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人