水题
youthinkwu
这个作者很懒,什么都没留下…
展开
-
CodeForces 304A Pythagorean Theorem II
暑假集训第一天,水题热热身。 这题大意是统计3条边长在n(n<10000)范围内直角三角形个数。直接枚举就可以。#include <iostream>#include<cmath>using namespace std;int main(){ int n,ans=0; cin>>n; for(int i = 1 ; i <= n ; i++) {原创 2015-02-14 20:14:54 · 374 阅读 · 0 评论 -
HDU 3123 GCC
题意:给出n(n<10^100)和m(m < 1000000),求(0! + 1! + 2! + 3! + 4! + … + n!)%m; 思路:别被n的范围吓到了。如果n大于等于m了,之后的阶乘mod m 都等于0了,根本不用算。所以就判断一下n和m的大小就可以知道阶乘该算到多大了。阶乘的话可以递推着算。这样就o(n)了#include <iostream>#include <cstring>原创 2015-07-20 00:20:22 · 269 阅读 · 0 评论 -
HDU 2298 Toxophily
题意:人的坐标在原点,给出目标坐标(x,y) 和 原点的速度v,0 ≤ x, y, v ≤ 10000.问v和x的角度应该是多少,才能使得从思路原点发射的弓箭射中目标点。 思路:单峰的,可以三分,然而二元一次方程高中都学过,为什么不直接解出答案呢。 v* cosa* t = x; ==》t = x / v /cosa; v* sina* t- 1/2* g * t * t = y; 消去t;原创 2015-07-20 00:34:38 · 265 阅读 · 0 评论 -
HDU3183 A Magic Lamp
题意:给出一个长度小于1000位的数,然后让你去掉m个数字,使得剩下的数字连接起来组成的数最小。 思路:从左往右扫,相邻的两个数字如果逆序,那么就把第一个数去掉,剩下的数字组成新数,然后重复执行该步骤,知道m次操作完成,剩下的数组成的就是答案。注意考虑前导0的情况。#include <iostream>#include <cstring>#include <cstdio>#include <原创 2015-07-19 23:59:50 · 255 阅读 · 0 评论 -
HDU 2299 Largest Triangle
题意:顺时针给出n个点,这些点构成一个凸多边形,然后每次可以去掉相邻三个角构成的三角形,问最后剩下的最大面积的三角形面积是多少。 思路:这题其实任意的3点都可以构成一个三角形,找出个最大的就是答案了。因为你总有一种去掉的办法使得最后只剩下这3个点。n最多50个.所以暴力枚举所有的3点,求最大三角形面积OK。#include <iostream>#include <cstring>#includ原创 2015-07-20 00:40:46 · 413 阅读 · 0 评论 -
HDU 5207 Greatest Greatest Common Divisor
题意: 给你n个数,求出n个数里面选择两个数,使得公约数最大。 直接暴力显然是不行的 复杂度高达O(n^2)。可以用筛法,复杂度是O(nlogn)。a[i] = 1表示i这个数出现过。然后用筛法,从1遍历到max,这一层循环的i代表最大公约数,如果内层的a[i*j]=1,就说明i是i和i*j这两个数的最大公约数。往后遍历就能求出最大的最大公约数。#include <iostream>#inclu原创 2015-04-28 00:11:53 · 220 阅读 · 0 评论 -
URAL 1794 Masterpieces of World Architecture
题意:有n个学生,要轮着发言,每个学生都有自己所想的发言顺序,问尽量使大家满意,求第一个发言的人的序号。 题解:这题有很巧妙的做法,维护一个b[i] = j,表示序号为i的学生作为第一发言人得到j个人支持。当某个学生得到自己想要的发言顺序的时候,就可以知道这情况下第一个发言的人的序号,也就是这种情况下他支持谁先发言,统计所有人作为第一发言人的被支持次数。最后求出作为第一发言人被支持最多的序号就是答原创 2015-04-27 23:56:31 · 323 阅读 · 0 评论 -
URAL 1792 Hamming Code
题意:汉明码?给出4个圈,里面分别填0或者1,相交的部分等于它们的和mod2,现在给出一个7位码,前四位分别对应第四个大圈,后面的3个分别对应相交的那三个区域。让你判断给的码是否符合规范,如果不符合规范,每次只能改变某一个码,求出符合的码。 解法:既然每次都只能改变一个码,那我就暴力枚举了呗。#include <iostream>#include <cstring>#include <cstd原创 2015-04-27 23:42:13 · 368 阅读 · 0 评论 -
URAL 1788 On the Benefits of Umbrellas
题意:下雨了,有n个女生和m个男生。每个男生都有伞,每个女生都没有伞。女生如果被淋了就会产生怨念,每个女生都有自己的怨念值,男生如果不能邀请到女生,那么这个男生也会产生怨念,每个男生都有自己的怨念值。总怨念值等于被淋的女生的怨念值加上没有邀请到女生的男生的怨念值乘以邀请到女生的男生个数。问如何使得总怨念值最小。 解法:降序排序,把怨念值大的放前面,暴力遍历。男女成对数最多是男生个数和女生个数的最小原创 2015-04-27 23:36:03 · 722 阅读 · 0 评论 -
URAL 1796 Amusement Park
题意:有6种面值,分别是10,50,100,500,1000,5000。老师分别给了这些面值钱的张数,这些钱的张数必须得用完,给出票的价钱,问老师可能买多少张票。 解法:想想平时怎么买东西,当你给出的最小的钱是50的时候,如果东西的价格是10,你就有可能买1个,2个,3个,4个,5个。所以说在钱的张数一定的情况下,决定你能买多少张票的因素就是最小的面额。 右区间肯定是sum/p;左区间是(sum原创 2015-04-28 00:04:07 · 305 阅读 · 0 评论 -
URAL 1786 Sandro's Biography
题意:给你一段字符串,只有大小写字母。魔法师可以改变字符,将一个字母改成另一外一个大小写相同的字母需要花费5,大小写转换也需要花费5,问在文本中如何花费最小让文本中出现’Sandro’这个单词。 解法:数据很小。字符串长度最长200,直接暴力一波就可以了,扫一遍。#include <iostream>#include <cstring>#include <cstdio>#include <s原创 2015-04-27 23:27:42 · 311 阅读 · 0 评论 -
POJ 2256 Artificial Intelligence?
P = U * I 有单位的转换。 就是个小模拟题。#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){ int n; scanf("%d",&n); for(int i = 1 ; i <= n; i++) { double原创 2015-02-14 21:21:10 · 340 阅读 · 0 评论 -
201. Bitwise AND of Numbers Range LeetCode
题意:求m到n的与之和。 题解:肯定不能一个一个去与运算,想一想可以发现,m和n的表示成二进制的时候,只有他们两个的公共前缀的部分不会改变,后面不同的位置都会在某一时刻与0相与,所以最后与的值一定是最长公共前缀,然后后面全是0。class Solution {public: int rangeBitwiseAnd(int m, int n) { int bit = 0;原创 2016-03-07 22:25:10 · 246 阅读 · 0 评论