上一页 1 2 3 4 5 6 ··· 18 下一页
2013年8月17日

hdu - 3952 Fruit Ninja(简单几何)

摘要: 思路来自于:http://www.cnblogs.com/wuyiqi/archive/2011/11/06/2238530.html枚举两个多边形的两个点组成的直线,判断能与几个多边形相交因为最佳的直线肯定可以经过某两个点(可以平移到顶点处),所以暴力枚举两个点就好了如果有模版的话,写代码就快多了。代码如下:#include #include #include #include #include #include #include #include #include #include #define LL long long #define eps 1e-8 #defi... 阅读全文
posted @ 2013-08-17 15:01 Primo... 阅读(222) 评论(0) 推荐(0) 编辑
2013年8月16日

hdu - 3959 Board Game Dice(数学)

摘要: 这道题比赛中没做出来,赛后搞了好久才出来的,严重暴露的我薄弱的数学功底,这道题要推公式的,,,有类似于1*a+2*a^2+3*a^3+...+n*a^n的数列求和。最后画了一张纸才把最后的结果推出来。::(x*M^x)/N.而且通过这道题我发现有些数学函数还不如直接循环来的快,例如这道题中求x的值的时候。【我在此收回前面的话,昨天是oj的问题,今天我又交了一遍log的代码,耗时变成了0ms了。。。OMG】方法一:int x = int(log(n)/log(m)+0.5); if(_pow(m,x)=n) break;耗时0ms代码如下:#include #include... 阅读全文
posted @ 2013-08-16 20:56 Primo... 阅读(413) 评论(0) 推荐(0) 编辑
2013年8月15日

C语言中scanf()的用法!

摘要: 好文章转自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=287129&PostID=3668453scanf详解 scanf 原型: # include int scanf( const char *format, ... ); 函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。scanf() 是 printf() 的补函数。 在 C99 中,format 用 restrict 修饰。 format 指向的控制串由以下三类字符组成: ... 阅读全文
posted @ 2013-08-15 21:39 Primo... 阅读(502) 评论(0) 推荐(0) 编辑

URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)

摘要: 搞死人的题目,,,就是在n*n的方格中找路径长度为L的回路。开始的思路值适合n为偶数的情况,而忽视了奇数的case,所以wa了一次。然后找奇数case的策略,代码从70多行变成了100多,然后改了又改,自己在下面测了好久,交上去1y,但心里却无成就感。这样的一个题目,提不上什么思路,可以算作是乱搞的,下次比赛中再次碰到类似甚至同样的题目,我并不能保证能写出来。代码如下:#include #include #include #include #include #include #include #include #include #define M 1005 using n... 阅读全文
posted @ 2013-08-15 20:47 Primo... 阅读(163) 评论(0) 推荐(0) 编辑

URAL - 1917 Titan Ruins: Deadly Accuracy(水题)

摘要: 水题一个,代码挫了一下:题意不好理解。你去一个洞窟内探险,洞窟内有许多宝石,但都有魔法守护,你需要用魔法将它们打下来。每个宝石都有自己的防御等级,当你的魔法超过它的防御等级时它就会被你打下来。但是,当它被你打下来的时候,它会反弹你的魔法。如果反弹的魔法过强,你就会被自己的魔法杀死。很不幸的是,你的魔法是群体性的,你不能选择攻击谁,只要防御等级低于你魔法水平的宝石都会被你打下来。并且每个都会反弹你的魔法。你可以假设你的魔法水平无限大,但你躲避反弹的魔法的能力却并不是很强。输入:第一行两个数,分别是:N,宝石总数。P:你躲避反弹魔法的能力。(只要达到这个数你就会死)第二行N个数,每个宝石的防御等级 阅读全文
posted @ 2013-08-15 10:42 Primo... 阅读(171) 评论(0) 推荐(0) 编辑
2013年8月14日

URAL 1915 Titan Ruins: Reconstruction of Bygones(思路)

摘要: 搞这个题差不多是从比赛开始到结束。从自信慢慢的看题一直到wrong到死。这个题目可以说成是思路题,以为我们只要明白一点,这道题就成了纯暴力的水题,那就是当操作数不足栈中数字数目的时候,我们就没有必要复制了。注意数组要开足,如果是一路复制的话,2^20就可以到10^6次方级了,在cur #include #include #include #include #include #include #include #include #define M 1000005 using namespace std; int st[2*M]; int main () { int... 阅读全文
posted @ 2013-08-14 21:34 Primo... 阅读(151) 评论(0) 推荐(0) 编辑
2013年8月7日

SPOJ ONEZERO(搜索)

摘要: 搜索的好题,,,,摘自题解:题意; 给一个数n,求n 的最小的倍数,满足它的10进制 表示中每一位不是0就是1。思路: 用f(x)表示被n整除取模后的最小数,那么从0开始,每次往后添0或者1,如果得到的数与某个已经得到的数同余,就扔掉,不然就加入队列中继续搜。。。时间复杂度O(N).代码如下:#include #include #include #include #include using namespace std; #define M 20005 struct Node{ int m; bool flag; }; bool vis[M]; Node a[M]; ... 阅读全文
posted @ 2013-08-07 17:07 Primo... 阅读(193) 评论(0) 推荐(0) 编辑
2013年8月6日

hdu 4651 - Partition(五边形数定理)

摘要: 定理详见维基百科。。。。http://zh.wikipedia.org/wiki/%E4%BA%94%E9%82%8A%E5%BD%A2%E6%95%B8%E5%AE%9A%E7%90%86代码如下:#include #include #include #define LL long long #define INF 0x7fffffff #define MOD 1000000007 #define M 100005 using namespace std; int p[M]; LL ans[M]; void presolve() { int c = 0; for(i... 阅读全文
posted @ 2013-08-06 21:33 Primo... 阅读(193) 评论(0) 推荐(0) 编辑

hdu 4647 - Another Graph Game(思路题)

摘要: 摘自题解:若没有边权,则对点权从大到小排序即可。。考虑边,将边权拆成两半加到它所关联的两个点的点权中即可。。。因为当两个人分别选择不同的点时,这一权值将互相抵消。代码如下:#include #include #include #define LL long long #define INF 0x7fffffff #define M 100010 using namespace std; int comp(const double a, const double b) { return a=2; i-=2) ans+=node[i]-node[i-1]; ... 阅读全文
posted @ 2013-08-06 19:51 Primo... 阅读(95) 评论(0) 推荐(0) 编辑

hdu 4648 - Magic Pen 6(“水”题)

摘要: 摘自题解: 题意转化一下就是:给出一列数a[1]...a[n],求长度最长的一段连续的数,使得这些数的和能被M整除。分析:设这列数前i项和为s[i],则一段连续的数的和a[i]+a[i+1]+...+a[j-1]+a[j]=s[j]-s[i-1],所以这段连续的数的和能被m整除的条件就是(s[j]-s[i-1])%m==0,即s[j]%m-s[i-1]%m==0,因此,只需要每一个余数找使s[i]%m等于该余数的最小的i,和s[j]%m等于该余数的最大的j,相减即为最长的连续的数的长度。然后,可以预处理一下,用一数组存下模相同几个前缀和的最小坐标,使得代码优化为O(N)的时间复杂度。代码如下: 阅读全文
posted @ 2013-08-06 19:23 Primo... 阅读(161) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 18 下一页