摘要:
题面:有n个区,第i个区有x[i]+y[i]个选民,其中x[i]支持A,y[i]支持B,支持人数多的一方获得该区的全部票数z[i],全部区的票数之和多者获胜,问至少还要多少选民从支持B改为支持A,才能让A胜出? 范围:1<=n<=100; 0<=x[i],y[i]<=1E9; x[i]+y[i]为奇 阅读全文
摘要:
题面:有n种泥巴,第i种有c[i]块,大小为s[i]。每次操作可以选择2块大小同为x的泥巴,将其合并成1块大小为2x的泥巴。操作次数不限,问最终至少有多少块泥巴? 范围:n<=1E5; s[i],c[i]<=1E9 思路:贪心,从小到大,能合并就合并,结果肯定是最少的。注意map的使用,如何实现边遍 阅读全文
摘要:
题面:给定长为n的数组A,问有多少对下标(i,j)满足A[i]*A[j]为完全平方数? 范围:n<=2E5; A[i]<=2E5 思路:完全平方数即质因子的个数为偶数,因此对元素进行化简,把偶次质因子都去掉,再统计即可。另外,0乘任何数都为0,需要单独处理。 #include <bits/stdc+ 阅读全文
摘要:
题面:有一块大小为H*W的巧克力,要分给n个人,第i个人要分边长为2^a[i]的正方形,问是否够分? 范围:H,W<=1E9; n<=1000; a[i]<=25 思路:贪心,关键是先处理大请求,并且要用大块来处理大请求。 将请求按从大到小依次处理,优先处理大请求,如果处理不了,则无解。 用大根堆维 阅读全文
摘要:
题面:有n座城市,从城市i到城市j可以坐班车,需要A*D[i][j]时间,也可以坐火车,需要B*D[i][j]+C时间。可以从班车换到火车,但反过来不行。换乘时间不计,求从城市1到城市n的最短时间。 范围:n<1000; A,B,C<1E6; D[i]][j]<1E6并且D[i][i]=0。 思路: 阅读全文