hdu
liruiiuril
http://li-rui.org
展开
-
hdu acm暑期集训 第一场(附部分考场原生代码)
//本场新生场//A 蛇形矩阵,人工模拟,当遇到边界时单独处理,改变移动方向即可。#include#include#includeusing namespace std;const int maxn = 100;int a[maxn][maxn];int main(){ int tot; int x,y,n,f; while(~scanf("%d",&n)原创 2013-07-07 15:52:36 · 772 阅读 · 0 评论 -
hdu 3714
#include#include#includeusing namespace std;int n;const int maxn = 10000+10;int a[maxn],b[maxn],c[maxn];double f(double x){ double ans=a[0]*x*x+b[0]*x+c[0]; for(int i=0;i<n;i++)原创 2013-07-04 11:06:31 · 810 阅读 · 0 评论 -
hdu 1724 辛普森公式求积分
#include#includedouble a,b,l,r;// simpson公式用到的函数double F(double x) { return sqrt(b*b*(1-x*x/(a*a)));}// 三点simpson法。这里要求F是一个全局函数double simpson(double a, double b) { double c = a + (b-a)/2;原创 2013-07-04 14:18:38 · 1233 阅读 · 0 评论 -
hdu 2647 bfs+拓扑排序
#include#include#include#include#include#include#define maxn 10001+50using namespace std;int n;int c[maxn],dis[maxn];vector g[maxn];vector gg[maxn];queue q;bool dfs(int u){ c[u]=-1;原创 2013-07-19 17:55:00 · 758 阅读 · 0 评论 -
hdu 1071 辛普森方法
#include#includedouble ah,h,ch,bb,cc,k,x1,x2,yy1,y2,x3,y3;// simpson公式用到的函数double F(double x) { return (ah*(x-h)*(x-h)+ch-(k*(x-bb)+cc));}// 三点simpson法。这里要求F是一个全局函数double simpson(double a, d原创 2013-07-04 14:05:13 · 917 阅读 · 0 评论 -
hdu 1848 SG函数
#include#include#include#includeusing namespace std;const int maxn = 1000+10;int SG[maxn];int vis[maxn];int f[maxn];int main(){ f[1]=1,f[2]=2; SG[0]=0; for(int i=3;i<=16;i++) f原创 2013-07-04 23:56:50 · 721 阅读 · 0 评论 -
hdu 1870 栈
#include#include#include#includeusing namespace std;char str[1000+100];stack q;int main(){ int cnt=0; char top; while(~scanf("%s",str)) { while(!q.empty())原创 2013-07-05 00:20:09 · 816 阅读 · 0 评论 -
基本数学函数-from tc
#include#include#include#include#includeusing namespace std;//=======================================//int toDecimal(int n, int b){ int result=0; int multiplier=1; while(n>0) {原创 2013-07-05 00:48:55 · 788 阅读 · 0 评论 -
hdu 2669 扩展欧几里得
#include#include#includetypedef __int64 LL;using namespace std;LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}void gcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b) { d=a; x=原创 2013-07-05 21:23:15 · 687 阅读 · 0 评论 -
hdu 1576 扩展欧几里得
#include#include#includetypedef __int64 LL;const LL mod = 9973;using namespace std;LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}void gcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b) {原创 2013-07-05 22:16:28 · 697 阅读 · 0 评论 -
hdu 4519
#includeusing namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n,k,m; scanf("%d%d%d",&n,&k,&m); if(n<m) { printf("%d\n",原创 2013-07-03 23:41:56 · 817 阅读 · 0 评论 -
hdu 2176 nim和
#include#include#includeusing namespace std;int a[200011];int main(){ int m,nim,i; // bool flag; while(scanf("%d",&m)!=EOF && m) { scanf("%d",&a[0]); nim=a[0];原创 2013-07-02 20:39:12 · 704 阅读 · 0 评论 -
hdu 2196 (通过树的直径来求的方法)
#include#include#include#include#include#includeusing namespace std;const int maxn = 100000+500;struct edge{ int v,w;};int n;vector g[maxn];queue q;int dis[maxn],d1[maxn],d2[maxn];boo原创 2013-07-08 01:07:05 · 891 阅读 · 0 评论 -
关于临接表2种方式实现的测验(Adjacency List)
#include#include#includeconst int maxn = 40;int u[maxn],v[maxn],next[maxn],first[maxn];int n,m;void read_graph(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) first[i]=-1; for原创 2013-07-08 17:12:30 · 876 阅读 · 0 评论 -
hdu 1505 City Game
#include#includeusing namespace std;const int maxn = 1000;int mat[maxn][maxn],up[maxn][maxn],left[maxn][maxn],right[maxn][maxn];int main(){ int t; scanf("%d",&t); while(t--) {原创 2013-06-29 12:52:29 · 807 阅读 · 0 评论 -
hdu 1159 LCS
#include#include#include#include#includeusing namespace std;const int maxn = 1005;string c,d;int dp[maxn][maxn];string a,b;int main(){ while(cin>>c>>d) { a.clear();原创 2013-06-29 13:41:06 · 746 阅读 · 0 评论 -
hdu 1210 模拟
#includeusing namespace std;int main(){ int n,cnt,num; while(~scanf("%d",&n)) { num=1; cnt=0; while(1) { if(num<=n) {原创 2013-06-29 14:19:43 · 826 阅读 · 0 评论 -
BUAA 555 N皇后
#include#includeusing namespace std;const int maxn = 15;int c[maxn];int tot,n;void search(int cur){ int i,j; if(cur==n) tot++; else { for(i=0;i<n;i++) {原创 2013-06-29 14:59:26 · 740 阅读 · 0 评论 -
hdu 1045
#include#include#includeusing namespace std;char mat[10][10];int ans,n;bool ok(int x){ if(mat[x/n][x%n]=='X'|| mat[x/n][x%n]=='s') return false; for(int i=x/n;i>=0;i--)//这1列原创 2013-06-29 17:05:48 · 708 阅读 · 0 评论 -
hdu 3299
#include#includeusing namespace std;struct point{ int x,y; bool operator < (const point& rhs) const { return x<rhs.x; }};const int maxn = 100+10;point p[maxn];int n,m,y原创 2013-06-29 21:44:01 · 775 阅读 · 0 评论 -
hdu 1799
#includeint c[2005][2005];void solve(){ for(int i=1;i<2001;i++) { c[i][1]=i%1007; c[i][0]=1; } for(int i=2;i<2001;i++) for(int j=1;j<2001;j++) c[原创 2013-06-29 19:30:39 · 695 阅读 · 0 评论 -
hdu 4092
#include#includetypedef __int64 LL;using namespace std;LL a[]={0,1,1,1,4,6,19,43,120,307,866,2336,6588,18373,52119,147700,422016,1207477,3471067,9999135,28893560,83665729,242826187,706074369,20568原创 2013-07-06 01:12:50 · 1231 阅读 · 0 评论 -
hdu 1016 dfs
#include#include#include#include#includeusing namespace std;int n;bool vis[50];int A[50];bool isp[50];bool is_prime(int k){ if(k==2) return true; for(int i=2;i<=sqrt(k);i++)原创 2013-07-06 13:17:04 · 674 阅读 · 0 评论 -
hdu 4121 Xiangqi
我写的时候主要有2个大错误1:判断2点之间多少个子,没有保证起点2:马的方向是8个,我画图时搞了4个。。。#include #include #include #include #include #include #include using namespace std;/* define */#define sf(a) scanf("%d",&a)#de原创 2013-10-08 23:15:57 · 797 阅读 · 0 评论 -
hdu 4451 Dressing
画个图是个明智的选择。解法不唯一。#include #include #include #include #include #include #include using namespace std;/* define */#define sf(a) scanf("%d",&a)#define sf3(a,b,c) scanf("%d%d%d",&(a),&(b原创 2013-10-10 17:44:21 · 750 阅读 · 0 评论 -
hdu 4750
#include #include #define _int __int64using namespace std;struct edge{ _int u,v,len;}E[501000];_int fa[11000],set[11000];_int tot,res[501000],n;int m,w[501000];bool hash[11000];bool oper原创 2013-09-24 22:07:09 · 746 阅读 · 0 评论 -
hdu 4747 Mex
参考这篇文章:http://www.shuizilong.com/house/archives/hdu-4747-mex/#include #include #include #include #include #include #include using namespace std;/* define */#define sf(a) scanf("%d"原创 2013-10-10 20:12:22 · 1037 阅读 · 0 评论 -
hdu 1007 Quoit Design(分治法)
#include #include #include #include #include #include #include #include using namespace std;/* define */#define sf(a) scanf("%d",&a)#define sff(a) scanf("%lf",&a)#define sf3(a,b,c) scan原创 2013-10-11 18:49:21 · 873 阅读 · 0 评论 -
Codeforces Round #209 (Div. 2)-C. Prime Number(set)和D. Pair of Numbers(线段树)
不停的提取公因式。因为牵扯到0,最后取min(ans,sum)。原来很傻的去人工模拟。#include#include#include#include#includeusing namespace std;typedef long long int1;const int1 mod = 1000000007;int1 a[110000];int1 gar[110000];mu原创 2013-11-03 13:23:50 · 1104 阅读 · 0 评论 -
hdu 1216 Assistance Required
dfs 预处理可以过 不是素数 仔细读题 /* author:ray007great version:1.0*/#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long原创 2013-11-18 00:44:12 · 1084 阅读 · 0 评论 -
2013 ACM-ICPC 长沙赛区 部分分析
A hdu 4791 Alice's Print Service需要在纸上计算发现一个事实,只会取一种价格的纸。然后就很容易编码了,注意爆32位的细节。/* author:ray007great version:1.0*/#include#include#include#include#include#include#include#includ原创 2013-12-12 13:01:10 · 1394 阅读 · 1 评论 -
hdu 4778 Gems Fight!(记忆化搜索+状态压缩)
这个题目做了2天。第一天,苦于什么是2者最优策略。当晚有了1个大概的思想,但是还是不知如何编码实现。第二天,沉思20分钟,YY了一个转移。首先要基于你状态的设计,比如 dp[s] 代表的是此时先手的人比后手的人多得的分数。但是怎么转移?想了好久。。其实还是蛮符合生活的。2种情况,自己能继续选就让自己的分数越来越高,自己不能继续选的话就让对手的分数尽量小。原创 2013-12-13 18:15:52 · 1163 阅读 · 0 评论 -
hdu 1237 简单计算器(表达式求值)
我用栈写,有个技巧是再添加一个结束符'#'.然后根据优先级来进行计算即可。#include #include #include #include #include using namespace std;stack OPN;//restore the numstack OPO;//restore the operation/*1 is prior0 is equal-1原创 2013-10-08 16:41:51 · 1041 阅读 · 0 评论 -
UVA - 11489 Integer Game
#include#include#include#include#include#includeconst int N = 110000;int hash[20];int sum;void init(char* str){ memset(hash,0,sizeof(hash)); sum=0; for(int i=0;str[i];i++){原创 2013-10-05 19:11:53 · 991 阅读 · 0 评论 -
关于lower_bound 和 iterator 的测试
#include#include#include#include#includeusing namespace std;vector q(5);vector::iterator s,t,l,ll,it;int main(){ int n; while(~scanf("%d",&n)) { //for(int i=0;i<n;i++)原创 2013-07-06 16:29:13 · 760 阅读 · 0 评论 -
hdu 4604 强劲数据版
/*直到目前,这题后台数据都是错的*/#include#include#include#includeconst int inf = 99999999;const int maxn = 999999;int dp[maxn],a[maxn],b[maxn],d[maxn],dd[maxn],same[maxn];int n;using namespace std;int原创 2013-07-26 13:25:57 · 849 阅读 · 0 评论 -
hdu 4611 模拟+规律
#include#include#include#include#define LL __int64using namespace std;LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}LL lcm(LL a,LL b){ return a/gcd(a,b)*b;}LL solve(LL n,LL a,LL b){原创 2013-07-26 20:32:36 · 911 阅读 · 0 评论 -
hdu 4619(sap解二分匹配)
#include#include#include#include#define min(a,b) (a)>(b)?(b):(a)#define max(a,b) (a)>(b)?(a):(b)#define inf 99999999using namespace std;int cnt;int source,N;int sink,ans;int c[101*101+10000原创 2013-07-26 22:43:39 · 803 阅读 · 0 评论 -
hdu 4763
错误的测试数据成就了哥潇洒的三十行代码#include #include #include #define sf(s) scanf("%d",&s)#define pf(s) printf("%d\n",s)#define _sf(str) scanf("%s",str)using namespace std;char P[1000010];int f[1000010];原创 2013-09-30 16:42:44 · 788 阅读 · 0 评论 -
poj 3467
挺让人泪奔的一道题。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;int mat[110][11原创 2013-10-01 02:29:04 · 1072 阅读 · 0 评论