X-man

导航

2013年4月13日 #

hdu1895(最小长方形)

摘要: #include<stdio.h>int main(){ int x1,y1; int x,y; int xm,ym,xa,ya; while(scanf("%d %d",&x1,&y1)!=EOF&&(x1!=0||y1!=0)) { xm=x1;//最小的x xa=x1;//最大的y ym=y1; ya=y1; while(scanf("%d %d",&x,&y)!=EOF&&(x!=0||y!=0)) { if(x<xm)xm=x; ... 阅读全文

posted @ 2013-04-13 19:53 雨钝风轻 阅读(199) 评论(0) 推荐(0) 编辑

hdu 2037(今年暑假不AC)

摘要: 题目: 有n个区间,[ai, bi),统计不相交区间最多有多少个?贪心策略: 将这n个区间按bi由小到大排序,然后从前向后遍历,每当遇到不相交的区间就加入目标集合,遍历完成后就找到了最多的不相交区间。具体证明,上篇博客有:#include<stdio.h>#include<algorithm>using namespace std;struct Node{ int s,e;}N[105];bool cmp(Node a,Node b){ if(a.e<b.e)return true; //else return a.s<b.s; return false;} 阅读全文

posted @ 2013-04-13 17:20 雨钝风轻 阅读(130) 评论(0) 推荐(0) 编辑

选择不相交区间(贪心:求不相交区间最多个数)

摘要: 选择不相交区间(转) 数轴上有n个区间[ai,bi],要求选择尽量多个区间,使得这些区间两两没有公共点。贪心策略: 按照b1<=b2<=b3…的方式排序,然后从前向后遍历,每当遇到可以加入集合的区间,就把它加入集合。(集合代表解的集合)证明: 我们对a1,a2……的关系分以下几种情况考虑: 1、a1>a2。 此时区间2包含区间1。这种情况下显然不会选择区间2,因为选择区间1会留下更多的剩余空间。 不仅区间2如此,以后所有区间中只要有一个 i 满足a1 > ai,i 都不要选。 即此种情况下,选择区间1是明智的,与策略一致。 ... 阅读全文

posted @ 2013-04-13 15:52 雨钝风轻 阅读(947) 评论(0) 推荐(0) 编辑

刻骨铭心

摘要: 刻骨铭心 是时光流逝后 记忆中还有你完整的样子 From:竹马翻译官 生活不是小说,不能太过计较。 年少时有过的期盼和梦想 一点一滴攒积于心。 雾散,梦醒 ... 阅读全文

posted @ 2013-04-13 15:50 雨钝风轻 阅读(155) 评论(0) 推荐(0) 编辑

hdu 4503(湫湫系列故事——植树节)

摘要: 题解: 这题不太好想,参考了下别人的思想,加自己的详细补充: 1. 从反面想,若能求出3个人之间有一条关系或者两条关系的总数,问题便可解(余下就是三人两两相互关系和两两无关系)。 2.对于点i,剩下的n-1个点可分为两个集合,一个是和i有关系的a[i],一个是没有关系的(n-1-a[i]), 从这俩集合里分别取一个点,组成三个点,便符合了三个人之间有一条关系或者两条关系的条件。res=Σ(a[i] * (n-1-a[i])), 3.在求和后的res中, 你会发现三人有一条关系的情况下,有关系的两人被算了两次。 有两条关系的情况下,无关系的两人被... 阅读全文

posted @ 2013-04-13 10:51 雨钝风轻 阅读(139) 评论(0) 推荐(0) 编辑

hdu 2099(整除的尾数)

摘要: #include<stdio.h>int main(){ int a,b; while(scanf("%d %d",&a,&b)!=EOF&&a!=0&&b!=0) { int k=0; for(int i=0;i<100;i++) { if((a*100+i)%b==0) { if(k==0)k=1,printf("%02d",i); else printf(" %02d",i); } } ... 阅读全文

posted @ 2013-04-13 09:55 雨钝风轻 阅读(139) 评论(0) 推荐(0) 编辑

2013年4月12日 #

hdu 2072(单词数)

摘要: 思路: 需特别注意数据有 2个单词中间有多个空格 结尾也有空格#include<stdio.h>#include<iostream>#include<map>#include<string.h>#include<string>using namespace std;int main(){ char ch[1000000]; string str,l; int m,i,a,len,q; while(gets(ch)&&ch[0]!='#') { a=0;m=0;q=0;len=0; map<stri 阅读全文

posted @ 2013-04-12 22:42 雨钝风轻 阅读(179) 评论(0) 推荐(0) 编辑

汇编实习二(屏幕显示)

摘要: 1,将 datas 段内定义的数据,在屏幕上依次按行、列显示出来,要求字符串的显示,要做成子函数 datas segment ;考号,共占用64字节 db '42110001', '42110002', '42110003', '42110004‘ db '42110005', '42110006', '42110007', '42110008' ;姓名,共占24字节 db 'qgh','eay','lfd','irc& 阅读全文

posted @ 2013-04-12 20:50 雨钝风轻 阅读(294) 评论(0) 推荐(0) 编辑

汇编实习一()

摘要: 在代码中,将起始地址为0:240,长度为16个字节的内存区域初始化为0011h,0122h,0233h,0344h,0455h,0566h,0677h,0788h 要求: (1)把前面指定的数据,复制到起始地址为0:200的内存中去 (2)用栈的机制实现将0:200 – 215中的数据顺序逆转 (3)将0:200 – 215中的数据加和,传送到DX中 将代码完成,并编译、连接,生成exe文件,在Debug中调试assume cs:b,ds:a,ss:c a segment dw 0011h,0122h,0233h,0344h,0455h,0566h,0677h,0... 阅读全文

posted @ 2013-04-12 20:40 雨钝风轻 阅读(295) 评论(0) 推荐(0) 编辑

2013年4月9日 #

hdu 1062 Text Reverse (STL栈)

摘要: #include<stdio.h>#include<stack>#include<string.h>#include<iostream>using namespace std;int main(){ int T; char a[1005]; int al; stack<char> s; scanf("%d",&T); getchar(); for(int i=0;i<T;i++) { gets(a); al=strlen(a); a[al]=' '; for(int j=0... 阅读全文

posted @ 2013-04-09 15:28 雨钝风轻 阅读(200) 评论(0) 推荐(0) 编辑