
编程思维
阿聊
愿我千帆过尽,归来仍是少年
展开
-
矩阵乘法
#include <iostream>#include <cstring>#include <cstdio>#include <cmath>using namespace std;const int Max = 100;int A[Max][Max],B[Max][Max],C[Max][Max];int main(){...原创 2019-03-13 13:09:49 · 526 阅读 · 0 评论 -
hdu 1086 You can Solve a Geometry Problem too [线段相交]
题目:给出一些线段,判断有几个交点。问题:如何判断两条线段是否相交?向量叉乘(行列式计算):向量a(x1,y1),向量b(x2,y2): 首先我们要明白一个定理:向量a×向量b(×为向量叉乘),若结果小于0,表示向量b在向量a的顺时针方向;若结果大于0,表示向量b在向量a的逆时针方向;若等于0,表示向量a与向量b平行。(顺逆时针是指两向量平移至起点相连,从某个方向旋转到另一个向...原创 2018-12-17 13:23:42 · 233 阅读 · 0 评论 -
开根号
法一:用二分法一个数一个数地代入,平方,再和原数比较大小,然后继续代入,直到得到十分近似的值法二:牛顿迭代法:百度百科#include <cstdio>#include <iostream>#include <cstring>#include <cmath>using namespace std;#define eps 0....原创 2018-11-19 11:06:32 · 2420 阅读 · 0 评论 -
hdu 1079 Calendar Game
题目题意:Adam and Eve 两个人进行日期移动,开始日期为y-m-d,每次可以移动到下月的同一天(m+1)+d 或者 这一天的下一天m+(d+1),最后移动到2001-11-4的胜利。找规律,因为动作的始终是month+1或者day+1,影响的结果大部分都是(month+day+1),即如果(month+day)为偶数,+1后变为奇数,(month+day)为奇数,+1后...原创 2018-11-10 19:02:14 · 198 阅读 · 0 评论 -
hdu 1071 The area
题目题意:已知p1,p2,p3三点求抛物线和直线围成的面积。核心代码就一行,结果够推两个小时了。#include <iostream>#include <cstdio>#include <math.h>using namespace std;int main(){ double x1,x2,x3,y1,y2,y3; ...原创 2018-11-01 16:38:27 · 158 阅读 · 0 评论 -
poj 2109 Power of Cryptography
题目题意:给你两个整数 n 和 p ,让你求一个 k 满足 k^n=p,1<=n<= 200, 1<=p<10^101,1<=k<=10^9类型 长度 (bit) 有效数字 绝对值范围float 32 6~7 ...原创 2018-10-14 14:12:38 · 102 阅读 · 0 评论 -
组合数
long long factorial(int n){ long long m = 1; for(int i=1;i<=n;i++) m*=i; return m;}long long C(int n,int m){ return factorial(n)/(factorial(m)*factorial(n-m)); ...原创 2018-09-18 10:58:28 · 143 阅读 · 0 评论 -
hdu 2178 猜数字
题目由二分思想,尽量往右靠(每次取中间值加1为新的左边界 且 右边界不变),以n=3为例:(((((1+m)/2)+1+m)/2)+1+m)/2=m 解得,m=7. 当n=n时,归纳易得, m=(2^n)-1....原创 2018-09-14 11:09:31 · 272 阅读 · 0 评论 -
hud 3123 GCC
题目输入:n 和 mod输出:Output the answer of (0! + 1! + 2! + 3! + 4! + ... + n!)%m.Constrains0 < T <= 200 <= n < 10^100 (without leading zero)0 < m < 1000000一道模运算的题,其实是一道数学题。因为n太大...原创 2018-07-17 13:37:21 · 145 阅读 · 0 评论 -
hdu 2060 Snooker
题目这道题主要难在读题上(考英语)讲的是斯诺克桌球游戏:斯诺克规则是总共有15个红球和6个彩球,打球顺序为打一个红球,进球得1分,再打一个彩球*如一红球被击进袋,该运动员可继续进行下一击球,且下一个活球应是该运动员所选的一个彩球。如该彩球被击进袋,可得分。然后再将彩球放回置球点。*红球全部离台前,轮流交替地将红球与彩球击进袋,才能一杆继续下去。直到台面上最后一只红球被击落后,随之一个彩球也被击进袋...原创 2018-06-15 13:29:55 · 162 阅读 · 0 评论 -
百练 2764:数根 【九余数定理】
题目这道题不能用int 来存,毕竟101000太大如果一般的来做的话如下:#include<stdio.h>int main(){ char c; int digitroot =0,sum,flag=0; while((c = getchar()) != '\n' && c != EOF) { digitr...原创 2018-04-26 15:37:30 · 297 阅读 · 0 评论 -
hdu 1205 吃糖果【鸽巢原理】
题目这道题不难,看别人博客的时候发现大家都说用鸽巢原理,这是个什么鬼,于是乎百度之。1.把某种糖果看做隔板,如果某种糖果有n个,那么就有n+1块区域,至少需要n-1块其他种糖果才能使得所有隔板不挨在一块..也就是说能吃完这种糖果.至少需要其他种类糖果n-1块..2.数量最多的糖果(隔板)可以构造最多的空间,如果这种糖果有maxn个....那么需要maxn-1个其他种糖果.对于某种数量少...原创 2018-04-05 18:41:33 · 261 阅读 · 0 评论 -
hdu 1163 Eddy's digital Roots 【九余数定理】
http://acm.hdu.edu.cn/showproblem.php?pid=1163九余数定理:如果一个数的各个数位上的数字之和能被9整除,那么这个数能被9整除;如果一个数各个数位上的数字之和被9除余数是几,那么这个数被9除的余数也一定是几。 证明:首先10^i =99...9(i个9) +1除以9的余数=1所以ai*10^i除以9的余数=ai 用a0~a...原创 2018-03-22 16:53:20 · 247 阅读 · 0 评论 -
hdu 1005 Number Sequence
题目第一次做的时候用的递归,意料之中(n最大可以达到100,000,000),超时超内存。#includeint A,B;int func(int n){ if(n==1||n==2) return 1; return (A*func(n-1)+B*func(n-2))%7;}int main(){ int n; while(~ scanf("%d原创 2018-02-06 20:26:47 · 150 阅读 · 0 评论 -
欧拉函数
一、质因数与分解质因数 ?如果一个质数是某个数的约数,那么就说这个质数是这个数的质因数。 把一个合数用质因数相乘的形式表示出来,叫做分解质因数。 例:把30分解质因数。 解:30=2×3×5。 其中2、3、5叫做30的质因数。 又如12=2×2×3=22×3,2、3都叫做12的质因数。二、 公约数只有1的两个数,叫做互质数(欧拉函数是小于n的正整数中与n互质的数的数目)列:1到...转载 2017-11-17 17:29:02 · 285 阅读 · 0 评论 -
hdu 2200
题目从n个人中选全部或部分人,然后将这些人分成两部分,要求其中一部分的最小值大于另一部分的最大值假设n个人的ac数量按从小到大排列,可以从中任选m个人(n=>m>=2),再把这m个人分2组(每个人都要分组),要是满足最小ac数大于最大ac数,只需要在m个人中插板即可。例如:m个人假如分别为 :1,2,3,4,......m-1,m (m个人的ac数从小到大排列)只需在任原创 2017-11-09 15:48:35 · 231 阅读 · 0 评论 -
hdu 2086 A1 = ?(数学题)
转载链接因为:Ai=(Ai-1+Ai+1)/2 - Ci, A1=(A0 +A2 )/2 - C1; A2=(A1 + A3)/2 - C2 , ...=> A1+A2 = (A0+A2+A1+A3)/2 - (C1+C2)=> A1+A2 = A0+A3 - 2(C1+C2) 同理可得:原创 2017-11-04 14:16:07 · 252 阅读 · 0 评论 -
hdu 1058
这道题有很多种做法,但是思路大都是一样的,代码有点类似于poj2591这道题。题意:问因子只含有2,3,5,7的第k个数是什么?#include<stdio.h>int f[5843],n;int i,j,k,l;int Min(int a,int b,int c,int d){ int _min = a; if(b<_min) _min = b; ...原创 2018-02-12 23:30:53 · 170 阅读 · 0 评论 -
hdu 2091 空心三角形
题目#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ int n; char ch; int flag = 0; while(scanf("%c",&ch),ch!='@') { scanf("%...原创 2018-12-19 14:09:36 · 120 阅读 · 0 评论 -
hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】
题目这道题主要是需要考虑到各种情况:先对马的速度进行排序,然后分情况考虑:1.当田忌最慢的马比国王最慢的马快则赢一局2.当田忌最快的马比国王最快的马快则赢一局3.当田忌最快的马比国王最快的马慢 则用田忌最慢的马和国王最快的马比,输一局4.当他们最快的马相等时则用 田忌最慢的马和国王最快的马比。【因为Tian剩下的super马一定能战胜king的plus马,所以就算自己输一场,队友也能帮...原创 2018-12-15 21:00:24 · 210 阅读 · 0 评论 -
hdu 3089 Josephus again 【快速约瑟夫环】
约瑟夫问题的递推公式:f[n]=(f[n-1]+k)%n当 f(i−1)+k≥i f(i-1)+k ≥ if(i−1)+k≥i 时,直接递推。当 f(i−1)+k<i f(i-1)+k < if(i−1)+k<i 时,加速优化。那么可以加速多少步呢?设加速步数为 x。#include <iostream>#include...原创 2019-02-25 23:41:54 · 370 阅读 · 0 评论 -
计蒜客:显示屏输出
蒜头君有一块数码管显示屏,只能显示数字。每个数字的显示如下。每给这道题跪了,注意数据的存储,和访问。具体解释 看代码注释#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <set>using n...原创 2019-04-04 10:00:46 · 395 阅读 · 0 评论 -
计蒜客:得到整数X (二进制枚举子集)
#include <iostream>#include <cstring>using namespace std;int main(){ int n,m;cin>>n>>m; int a[30]; memset(a,0,sizeof(a)); for(int i=0;i<n;i++) ...原创 2019-04-04 13:09:46 · 445 阅读 · 0 评论 -
计蒜客:表达式求值
这道题,想了一早上。只可意会不可言传。需要注意的点:1.输入的时候ch==10为回车。while(scanf("%c",&ch)&&ch!=10){}2.#include <iostream>#include <cstdio>using namespace std;const int mod = 1...原创 2019-04-03 13:49:33 · 264 阅读 · 0 评论 -
poj 2591 Set Definition
题目这道题是个水题,写博客上的人好像都不屑于写这这道题。但是我为什么还是觉得挺难的呢? 我也是看了别人的博客才过了的,感觉这种写法很新颖,这样就可以不用在排序了。下面给出正解:#include#includeusing namespace std;int S[10000000+5];int min(int a,int b){ return a<b? a:b;}int m原创 2017-12-05 21:23:20 · 317 阅读 · 0 评论