浙江大学

浙江大学机试 畅通工程 Easy

十年热恋 提交于 2020-03-06 01:23:36
基本思想: 无; 关键点: 无; #include<iostream> #include<string> #include<vector> #include<map> using namespace std; const int maxn = 1020; int father[maxn]; int m, n; bool ma[maxn][maxn]; void init(int n) { for (int i = 0; i <= n; i++) father[i] = i; } int findfather(int x) { while (x != father[x]) { x = father[x]; } return x; } void unfather(int a, int b) { int aa = findfather(a); int bb = findfather(b); father[aa] = bb; } int cntnum(int n) { int cnt = 0; for (int i = 1; i <= n; i++) { if (father[i] == i) cnt++; } return cnt; } int main() { while (cin >> n >> m) { if (n == 0) continue; fill(ma[0], ma[0]

第十六届浙江大学宁波理工学院程序设计大赛 D 雷顿女士与分队hard version(dp)

依然范特西╮ 提交于 2019-12-08 19:10:33
题意 链接: https://ac.nowcoder.com/acm/contest/2995/D 来源:牛客网 卡特莉接到来自某程序设计竞赛集训队的邀请,来为他们进行分队规划。 现在集训队共有n名选手,选手们的实力可以用一个整数来表示。 当若干个选手被分到了一队,队内会因为实力的不平衡而产生矛盾。 具体的来说,我们用矛盾因数来量化矛盾的大小,一个队的矛盾因数为队内成员实力的最大值减去最小值。 现在我们需要将n名选手恰好分为n/k 向下取整队,并且每个队最少有k个人。 请你帮卡特莉回答一下他们分出的队的矛盾因数总和最小是多少。 思路 设dp[i]为从1分配到i的矛盾因数总和最小值。先对数组从小到大排序。当前的答案可以由dp[i-k]转移过来,即i-k+1~i(正好k人)分为一队;也可以由dp[i-1]转移过来,意味着i要加入到i-1这一队。 两种情况写成方程为:dp[i]=min(dp[i-k]+a[i]-a[i-k+1],dp[i-1]+a[i]-a[i-1])。 但是要注意,在i%k==0的时候,dp[i]只能由前者转移过来 ,因为要保证每个队都至少有k个人,那么每次找到k个人就可以算一下每个队的矛盾和。 代码 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #define ll long

浙江大学 PTA 习题10-6 递归求Fabonacci数列 (10 分)

匿名 (未验证) 提交于 2019-12-02 23:26:52
版权声明:代码仅供学习交流,使用请注明出处,严禁用于商业用途、从事违法犯罪活动等。 https://blog.csdn.net/songbai220/article/details/88959230 本题要求实现求Fabonacci数列项的函数。 Fabonacci数列的定义如下: 函数接口定义: int f( int n ); 函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。 裁判测试程序样例: #include <stdio.h> int f( int n ); int main() { int n; scanf("%d", &n); printf("%d\n", f(n)); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 6 输出样例: 8 我的代码 int f( int n ) { int fn; if(n==0)fn=0; else if(n==1)fn=1; else if(n>=2)fn=(f(n-2)+f(n-1)); return fn; } 文章来源: https://blog.csdn.net/songbai220/article/details/88959230

月薪30k的资深程序员用Python爬取了知乎百万用户!并数据分析!

匿名 (未验证) 提交于 2019-12-02 22:54:36
数据量:3,289,329 人。 数据采集工具:分布式 python 爬虫 分析工具:ElasticSearch + Kibana 分析角度:地理位置、男女比例、各类排名、所在高校、活跃程度等。 请各位注意: 以下所有分析结果都基于我抓取到的这300万用户的个人信息,非权威分析,仅供参考。 数据抓取时间为2017年7月份,用户数据会随着时间推移而变化,所以该报告具有一定时效性。 蓝色为男生,红色为女生。具体数据为: 男生:1,202,234 人,占 51.55%。 女生:1,129,874 人,占 48.45%。 知乎用户都是哪里人? 再来看看全国(全球?)都有哪些地方的人在玩知乎: 由上图可以看到,知乎用户中学生用户占据多数,其它的比如产品经理、程序员、运营、HR数量也不少。我们看一下具体的排名(前十名): 由上图可以看到,知乎用户中“学生”的比重独占鳌头,我们把“学生”去掉,来看看正经些的知乎职业排名: 知乎主流职业的性别分布: 上面这张饼图的内圈表示各主流职业在前十名中所占的比重,外圈表示该职业从业者中的男女比例,蓝色为男性,红色为女性。我们再用一张直方图来表示: 看完了知乎各职业的性别分布,我们再用一张热力图来观察知乎主流职业(前五名)在各个地区的分布情况,颜色越深,代表该职业在该地区的人数越多: 这里我为了展示方便,去掉了产品经理,你只需要知道产品经理在各地人数都是最多的

浙大 PAT 甲级 1031 Hello World for U 排版题总结

孤街醉人 提交于 2019-11-27 13:40:00
和1001题类似,它们都属于排版题。排版题不再把注意力放到处理输入的数据当中,而对输出作特别的关注。(《王道论坛机试指南》)针对这些题目,掌握C的printf/scanf,C++的cin/cout至关重要,记清楚对格式的控制。根据目前为止所做的PAT题目,总结了几个常用的小技巧: printf("%03d",ans) %后加上03代表用0将输出(左边)填充为三位数,016代表左零填充为16位数,以此类推。在有些固定的数据,比如固定7位的学号,都是数字,用字符数组显得麻烦,所以经常直接用int来存储学号。但是有些学号是以0开头的,如果直接输出则会出错。这一点在PAT题目里出现过很多次。 printf("%.3f",ans) %后加上.3f代表输出为小数点后保留3位的浮点数,这里是截断,不是四舍五入。 开辟字符型数组时永远多开辟几个单元,因为如果后面没有地方存储0时,直接用printf("%s",ans)会不知道在何处截止,后面会输出很多无关的多余乱码。 如果要读取一整行含空格的字符串,使用cin.getline。或者string.getline(...). cin、cin.getline等使用时要查清楚对于空格、换行符的处理,这里涉及到缓冲区等问题,很容易出错,需要进行细致的了解。网上有很多讲解,可以系统地学习一下。 C语言中的strtok函数可以用于分割字符串,具体用法请查函数原型