杂类
softrice
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #230 (Div. 2) C. Blocked Points
画个图找规律。#include#include#include#includeusing namespace std;int main(){ int n; while(cin>>n) { if(n==0) { cout<<1<<endl; continue; } double len=sqrt(2)/2*n; int l=len;原创 2014-02-19 12:29:20 · 877 阅读 · 0 评论 -
poj 2965_The Pilots Brothers' refrigerator
枚举#include#include#includeusing namespace std;char str[10][10];int map[10][10];void copy(){ for(int i=1;i<=4;i++) for(int j=1;j<=4;j++) if(str[i-1][j-1]=='-') map[i][j]=1; else原创 2013-10-08 23:31:02 · 650 阅读 · 0 评论 -
hdu 4751——Divide Groups
http://www.cppblog.com/linyangfei/archive/2008/08/08/58295.html很详细了。#include#include#includeusing namespace std;int n;int map[110][110];int cmap[110][110];int col[110];int flag;void dfs(i原创 2013-09-21 18:39:29 · 968 阅读 · 0 评论 -
6163 - Myth Busters
#include #include#includeusing namespace std; const int INF = 1 << 30; int a[4];int res[4];bool vis[4];bool flag; int deal(int x,int y,int i) //四则运算{ switch(i) { case 0 :原创 2013-10-04 14:49:49 · 804 阅读 · 0 评论 -
hdu 4544 湫湫系列故事——消灭兔子
优先队列#include#include#include#include#include#includeusing namespace std;struct Node{ int d,p; friend bool operator<(Node x,Node y) { return x.p>y.p; }}a[110000];int b[110000];原创 2013-09-30 21:37:50 · 750 阅读 · 0 评论 -
2进制里1的个数
fun返回: x用2进制表示,里面包含1的个数。int fun(int x){ int ans=0; while(x) { ans++; x&=(x-1); } return ans;}原创 2013-09-13 23:18:16 · 672 阅读 · 0 评论 -
hdu 4671——Backup Plan
#include#include#includeusing namespace std;int num[300];int n,m;void solve1(){ int i; for(i=1;i<m;i++) { printf("%d %d",i,n); for(int j=1;j<n;j++) if(j!=i) printf("原创 2013-08-14 13:03:22 · 658 阅读 · 0 评论 -
HDU——4666 Hyperspace
stl的应用渣了,这个都不会弄。。。http://blog.csdn.net/dongdongzhang_/article/details/9954329 #include #include #include #include #include #include #include #include #include #include #inc转载 2013-08-14 00:44:50 · 683 阅读 · 0 评论 -
hdu 4576——Robot
#include #include#include#include#include#include#include#include#include#include#include#includeusing namespace std;double dp[210],a[210];int main(){ int n,m,l,r; in原创 2013-08-11 15:32:02 · 730 阅读 · 0 评论 -
HDU 4585——Shaolin
stl maphttp://blog.csdn.net/dongdongzhang_/article/details/9884345#include #include#include#include#include#include#include#include#include#include#include#includeusing nam转载 2013-08-11 16:50:44 · 754 阅读 · 0 评论 -
hdu 4515——小Q系列故事——世界上最遥远的距离
模拟#include#include#includeusing namespace std;int mon[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};int leap(int y){ return (y%4==0&&y%100!=0)|y%400==0;}void get_fu(int n){ int y=2013; i原创 2013-09-26 19:00:53 · 1004 阅读 · 0 评论 -
读写
读写#include#include#includeusing namespace std;int main(){ freopen("f://in.txt", "r", stdin); freopen("f://out.txt", "w", stdout); printf("%d ",1); return 0;}原创 2013-10-14 01:41:14 · 689 阅读 · 0 评论 -
codeforces 224 B. Number Busters
#include#include#includeusing namespace std;#define LL long longLL a,b,w,x,c;bool judge(LL t){ if(b-x*t>=0) return c-t<=a; return c-t<=a-((x*t-b)/w+((x*t-b)%w!=0));}int main(){ while(ci原创 2014-01-23 13:20:05 · 934 阅读 · 0 评论 -
hdu 4803_Poor Warehouse Keeper
输入X,Y题意可理解为把比值从1/1变成大于等于Y/X同时小于(Y+1)/X;设上一行数字是x,下一行是y。根据贪心原则,当x越小的情况,加y可以获得比值上升的最好效果。但是如果如果 (y+1)/x大于等于(Y+1)/X;那么就应该按第一个键。这道题让我郁闷是就是精度,让我错了很多遍。最后在弄个eps就过了。搞不懂。#include#include#includ原创 2013-12-12 21:35:30 · 1261 阅读 · 0 评论 -
hdu 4810 Wall Painting
错了好多遍啊。#include#include#includeusing namespace std;#define LL __int64#define mod 1000003LL n;LL a[1100];LL num[150];LL C[1100][1100];void init(){ for (int i=0;i<=1010;i++) {原创 2013-12-12 14:54:25 · 982 阅读 · 0 评论 -
ACM常见的5种错误。
wa,又wa,一直wa。到底是什么导致了wa。总结的5种常见错误(菜鸟的常见错误- -)1.题意理解错误。(常见错误)2.数组开小。(无向边,字符串等)3.遗漏初始化。(数组初始化,变量初始化)4.输出输出格式错误。(遗漏某些特殊的输出情况,或大小写等输出数据错误)有时处理字符串时,输入可能多空格,多回车,也会出错。5.特殊判断。就是tric点啦)原创 2013-11-13 20:19:38 · 3095 阅读 · 0 评论 -
4770 Lights Against Dudely
暴力枚举#include#include#include#includeusing namespace std;#define INF (1<<30)struct Point{ int x,y; void get(int xx,int yy) { x=xx; y=yy; }}p[20];str原创 2013-11-12 17:04:57 · 968 阅读 · 0 评论 -
Codeforces Round #213 (Div. 2) C Matrix
num【len】【i】表示长度为len,起点是j(终点是j+len-1)的和;vis【state】代表该数字出现过几次。因为最大和《=9*4000,所以vis数组大小无需超过40000;所以ans就为:if(vis[i]&&a%i==0)if(a/ians+=vis[i]*vis[a/i];复杂度为n*n/2;特别注意当0的时候,使用容斥原理求得ans;原创 2013-11-20 08:50:06 · 1883 阅读 · 2 评论 -
hdu 4430——Yukari's Birthday
二分+枚举二分写的好挫#include#include#includeusing namespace std;#define LL __int64#define INF ((LL)1<<60)LL n,ans;LL a,b;LL fun(LL bi,LL r){ LL k=1; LL tmp=0; while(r--) {原创 2013-10-18 21:43:40 · 811 阅读 · 0 评论 -
hdu 4422——The Little Girl who Picks Mushrooms
#include#include#includeusing namespace std;#define mod 20121014int a[10];int judge(int n){ for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i==j) continue; for(int k=1;k<=n;k原创 2013-10-17 18:10:20 · 716 阅读 · 0 评论 -
codeforce C - Vasya and Robot
#include#include#includeusing namespace std;#define LL long long#define INF ((LL)1<<60)LL a[110000];LL le[110000];LL ri[110000];LL f[110000];int main(){ LL n,l,r,Ql,Qr; while(cin>>n>>l>>r原创 2013-10-14 02:22:28 · 1640 阅读 · 0 评论 -
4117: Discover
#include#includeusing namespace std;int t;int x,y;int n,ans;int abs(int a){ if(a<0) return -a; return a;}int solve(){ if(n==x&&y!=-n) { return y+(n-1); } else {原创 2013-08-09 22:42:15 · 720 阅读 · 0 评论 -
hdu 4655——Cut Pieces
这代码写的很搓,但是。。赛后证明思路是正确的,就是maxn一直设到500000,结果一直wa。赛后发现只要到600000就可以ac。 经验不足啊。 #include#includeusing namespace std;#define maxn 600000#define mod 1000000007#define LL __int64#define ls (r原创 2013-08-08 18:33:12 · 862 阅读 · 0 评论 -
蛇形图
Problem Description在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:1 2 6 73 5 8 134 9 12 1410 11 15 16 Input直接输入方阵的维数,即n的值。(nOutput输出结果是蛇形方阵。 Sample Input3Sample Output原创 2013-07-07 17:20:08 · 1891 阅读 · 0 评论 -
HDU 3368——Reversi
枚举法 #include#include#includeusing namespace std;int ans;char map[10][10];int dir[8][2]={0,1,0,-1,1,0,-1,0,1,1,-1,1,1,-1,-1,-1};void dfs(int x,int y){ if(map[x][y]!='*') return ; int原创 2013-07-06 22:59:25 · 951 阅读 · 0 评论 -
HDU 2506——又见gcd
辗转相除法暴力枚举c。通过Gcd函数判断a/b与c/b是否互质。#include#includeusing namespace std;int Gcd(int a,int b){ if(a==0) return b; if(b==0) return a; return Gcd(b,a%b); }int main(){ int n; cin>>n;原创 2013-05-15 13:43:11 · 940 阅读 · 0 评论 -
HDU 1235 最大连续子序列
乱搞#include#includeusing namespace std;int main(){ int n; int num[10005]; int flag; int i; while(cin>>n&&n) { flag=1; for(i=0;i<n;i++) { scanf("%d",&num[i]); if(num[i]>=0)原创 2013-05-15 22:11:57 · 840 阅读 · 0 评论 -
HDU——1262 寻找素数对
筛选素数法#include#include#includeusing namespace std;bool prime[10005];int main(){ int n; memset(prime,0,sizeof(prime)); for(int i=2;i<=10000;i++) if(!prime[i]) { for(int j=i+i;j<=10原创 2013-05-15 15:13:16 · 852 阅读 · 0 评论 -
UESTC 1817——Complete Building the Houses 贪心
把第一的楼房全部建完,再继续。#include#includeusing namespace std;int main(){ int T; cin>>T; int flag=1; while(T--) { int n,m; int i,j; int t,a[100004]; cin>>n>>m; long long ans; int temp; t原创 2013-05-05 20:08:41 · 1266 阅读 · 0 评论 -
HDU 1215 ——七夕节
预处理#include#include#includeusing namespace std;#define N 500000int a[500001];int main(){ for(int i=1;i<=N/2;i++) for(int j=i+i;j<=N;j+=i) a[j]+=i; int t; cin>>t; while(t--) { in原创 2013-05-18 19:09:27 · 900 阅读 · 0 评论 -
HDU 4342 ——History repeat itself
乱搞#includeusing namespace std;int main(){ __int64 t; __int64 i; cin>>t; while(t--) { __int64 n; __int64 sum=0; cin>>n; int k=0; for(i=1;;i++) if(i*i<=n) n++; else bre原创 2013-05-15 19:20:13 · 888 阅读 · 0 评论 -
HUST——Little Sheep and a paper
点击打开链接一道数学题目题意为给出折纸的过程,问最后摊开后朝向自己突出的折痕个数。仔细思考后发现左折和右折效果一样,同理上下折也一样。情况分2种。第一种:只折一次。结果答案都是0.第二种:折多次。先讨论第一次是上下折。折完第一次后继续折,设左右折n次,上下折m次。摊开后,不难发现答案 就是第一次折的的那条中线上方所含的边数,(不包含纸的边缘和中线)竖原创 2013-05-01 19:22:49 · 853 阅读 · 0 评论 -
ATM (负二进制)
Problem Description在一个银行的大厅里有30个自动柜员机,编号分别为0..29,每个会员顾客都能通过这些柜员机提取10^9 ducats(一种早期的流通硬币单位)的借款业务,但必须在一个星期内还是通过这些柜员机完成还款业务。这种柜员机很特别,每个柜员机只能完成一种简单的动作:供客户提取固定数目的现金或接受客户固定数目的还款。第i个柜员机只能提供2^i ducats的借款业原创 2013-07-11 13:59:57 · 977 阅读 · 0 评论 -
二分 或者 指针
Problem DescriptionOne day, ZHJ came across a warrior novel named Kunlun in library. Soon, ZHJ fall into it.He tells everybody how deeply he loves Kunlun no matter whom he meets.He found it attr原创 2013-07-15 19:47:52 · 804 阅读 · 0 评论 -
hdu 4647——Another Graph Game
#include#include#includeusing namespace std;double a[110000];bool cmp(double x,double y){ return x>y;}int main(){ int n,m; while(cin>>n>>m) { for(int i=1;i<=n;i++) sca原创 2013-08-06 18:33:22 · 845 阅读 · 0 评论 -
codeforces 148 Not Wool Sequences
http://blog.csdn.net/kqzxcmh/article/details/8182097看了这里得出的结论。题目大意给出0~2^m-1个数求从中取出可以重复的n个数,是的任意一段子段的xor值不为0.F[i]表示长度为i的不为0的方案数,显然第i+1个可以放置的数为2^m-1-i 表示i个后缀形成的值是不能放的,因为没有一段的xor值为0,所以每个后缀的xor值都是不一转载 2013-08-05 18:24:37 · 775 阅读 · 0 评论 -
hdu 5611——Balls Rearrangement
http://blog.csdn.net/dyx404514/article/details/9474251上面的那个很好的解释了。以11 5 3 为例 5 3 的最小公倍数151 2 3 4 5 6 7 8 9 10 11 12 13 14 150 1 2 3 4 0 1 2 3 4 0 1 2 3 4 放进a箱子转载 2013-07-26 00:37:19 · 1137 阅读 · 0 评论 -
hdu 4602——Partition
找规律a(n)=(n+3)*2^(n-2) a(n+1) = 2*a(n) + 2^(n-1) a0=1 a1=21 2 5 12题解:我们可以特判出 我们可以特判出 我们可以特判出 我们可以特判出 n 对于 1 第一种情况,被选出的不包含端点那么有 第一种情况,被选出的不包含端点那么有 第一种情况,被选出的不包含端点那么有 第一种情况,被选出的不包含原创 2013-07-24 21:29:10 · 888 阅读 · 0 评论 -
hdu 4607——Park Visit(暑假第一次多校)
树的直径求出树的直径后分类讨论。#include#include#include#includeusing namespace std;#define maxn 200005int head[maxn];int v[maxn],next[maxn],cnt;int n,m,r;void add(int x,int y){ v[cnt]=y; next[cnt]=he原创 2013-07-24 20:04:02 · 840 阅读 · 0 评论 -
sgu 330——Numbers
DescriptionYoung Andrew is playing yet another numbers game. Initially, he writes down an integerA. Then, he chooses some divisor d1 ofA, 1 d1 < A, erases A and writes A1=A+ d1 inst原创 2013-07-20 20:59:07 · 1068 阅读 · 0 评论