ZOJ 2315

---恢复内容开始---

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1315

这个题目比较难以看懂,我也是看网上的题目意思才看懂的,大题意思就是关于钱的分配;

一个公司只有一个老板,到了年终的时候,要分钱,分钱有三种限制(老板不可以分红)

一、每个员工可以让的下属拿奖金,可以等待拿自己上司给自己的奖金。也可以什么都不做。

二、每个员工只可以自己拿钱或者给下属分钱,只能选择一样

三、每个员工只能给自己的一个下属分钱;

案例的输入的意思就是

1

4

1 1 2

第一行代表案例数,第二行代表有公司一共有几个人,第三行就是这个员工是属于那一个人管理的,比如说1代表着老板,第3个的2就代表着它是第二个人,也就是现在的所排序的第一个人管理的

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4
 5 int p[500100];       //记录谁是你的上司
 6 bool vis[500100];    //记录是否你分钱了
 7 int ans[500100];    //记录分钱了的人的位置
 8
 9 int main()
10 {
11     int n,i,sum,t;
12     scanf("%d",&t);
13     while(t)
14     {
15         scanf("%d",&n);
16         for(i=2;i<=n;i++)    //输入每一个人的直系上司是谁
17             scanf("%d",&p[i]);
18         sum=0;
19         memset(vis,false,sizeof(vis));   //进行初始化,每一个人都还没有进行分钱
20         for(i=n;i>1;i--)
21         {
22             if(!vis[i]&&!vis[p[i]])     //代表这个人没有分到钱,以及他的上司和他上司的其他部下都没有分到钱
23             {
24                 vis[i]=true;
25                 vis[p[i]]=true;
26                 ans[sum++]=i;      //记录这个人的位置
27             }
28         }
29         printf("%d\n",sum*1000);
30         for(i=sum-1;i>=0;i--)
31         {
32             if(i==sum-1) printf("%d",ans[i]);
33             else printf(" %d",ans[i]);
34         }
35         printf("\n");
36         t--;
37     }
38     return 0;
39 }

---恢复内容结束---

时间: 2024-11-05 09:24:08

ZOJ 2315的相关文章

ZOJ 2315 New Year Bonus Grant

New Year Bonus Grant Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original ID: 231564-bit integer IO format: %lld      Java class name: Main Special Judge All programmers of Mocrosoft software company are organized in

zoj 2315 New Year Bonus Grant 解题报告

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1315 题目意思:Bill Hates 是公司的老总,她管辖着很多程序员,每个程序员都有各自的上头.现在为了庆祝2013年的到来,要向这些程序员发放新年奖金.不过要遵循一些规则: 1.每个程序员要不把奖金给予她的其中一个下属,要把就等着她的上司发奖金给她. 2.每个程序员不能同时接收奖金和分发奖金. 3.如果程序员要把奖金给予她的下属,她的下属只能是一个,不能是多个.

ASC #1

开始套题训练,第一套ASC题目,记住不放过每一题,多独立思考. Problem A ZOJ 2313 Chinese Girls' Amusement 循环节 题意:给定n,为圆环长度,求k <= n/2,从1出发,每次顺时针方向走k步,即1->k+1->2*k+1,直到遇到一个已经走过的点结束,要求最终把所有点访问一遍,最后回到1,使得k尽量大. 代码: Problem B ZOJ 2314 Reactor Cooling 无源汇上下界网络流 题意:经典题,有上下界无源无汇的可行流,对

概率dp ZOJ 3640

Help Me Escape Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3640 Appoint description:  System Crawler  (2014-10-22) Description Background     If thou doest well, shalt thou not be accepted? an

zoj 2156 - Charlie&#39;s Change

题目:钱数拼凑,面值为1,5,10,25,求组成n面值的最大钱币数. 分析:dp,01背包.需要进行二进制拆分,否则TLE,利用数组记录每种硬币的个数,方便更新. 写了一个 多重背包的 O(NV)反而没有拆分快.囧,最后利用了状态压缩优化 90ms: 把 1 cents 的最后处理,其他都除以5,状态就少了5倍了. 说明:貌似我的比大黄的快.(2011-09-26 12:49). #include <stdio.h> #include <stdlib.h> #include <

ZOJ 1718 POJ 2031 Building a Space Station 修建空间站 最小生成树 Kruskal算法

题目链接:ZOJ 1718 POJ 2031 Building a Space Station 修建空间站 Building a Space Station Time Limit: 2 Seconds      Memory Limit: 65536 KB You are a member of the space station engineering team, and are assigned a task in the construction process of the statio

ZOJ 3607 Lazier Salesgirl (贪心)

Lazier Salesgirl Time Limit: 2 Seconds      Memory Limit: 65536 KB Kochiya Sanae is a lazy girl who makes and sells bread. She is an expert at bread making and selling. She can sell the i-th customer a piece of bread for price pi. But she is so lazy

ZOJ - 2243 - Binary Search Heap Construction

先上题目: Binary Search Heap Construction Time Limit: 5 Seconds      Memory Limit: 32768 KB Read the statement of problem G for the definitions concerning trees. In the following we define the basic terminology of heaps. A heap is a tree whose internal n

ZOJ 2859 二维线段树

思路:自己写的第二发二维线段树1A,哈哈,看来对二维的push操作比较了解了:但是还没遇到在两个线段树中同时进行push操作的,其实这题我是想在x维和y维同时进行push操作的,但是想了好久不会,然后看到这题又给出10秒,然后想想在x维线段直接单点查询肯定也过了,然后在第二维就只有pushup操作,在第一维线段树没有pushup操作.要是在第一维也有pushup操作的话,那就不用单点查询那么慢了.不过也A了,想找题即在二维同时进行pushup和pushdown操作的. #include<iost