
vijos
文章平均质量分 53
zafkiel_nightmare
弱弱的程序员
展开
-
vijos 1035 贪婪的送礼者
额,把题目读懂应该没问题,虽然繁琐,但难度不大. #include #include using namespace std; struct stu { string nam; int old; int get; int left; int ans; }; int main() { int i,j,k,s,t; cin>>t; getchar(); stu num[t];原创 2015-02-14 21:58:15 · 743 阅读 · 0 评论 -
vijos 1104 采药
简单背包问题 并没有难度 #include #include #include #include #include #include #include #include #include #include #include #define maxn 1000+5 using namespace std; struct stu { int time,vaule; }; stu a[maxn];原创 2015-06-11 18:23:49 · 584 阅读 · 0 评论 -
vijos 1234 口袋的天空
最小生成树kruscal算法 #include #include #include #define maxn 10005 using namespace std; struct stu { int x,y; int t; }; stu mapp[maxn]; int f[1005]; int n,m,k,sum,flag; bool cmp(stu x,stu y) { return x.原创 2015-06-23 15:56:14 · 751 阅读 · 0 评论 -
vijos 1132 求二叉树的先序序列
第一次写,搞了一晚上,ac得那一瞬间泪流满面....建树的时候参数一定要是地址啊,千万不要带指针进去啊QAQ #include #include using namespace std; struct root { char num; root* left; root* right; }; string zh,ho; void build(root* &s,int as,int ae,in原创 2015-04-30 23:23:28 · 510 阅读 · 0 评论 -
vijos P1062 迎春舞会之交谊舞
这题被归类为栈,所以用栈来做咯; 总体思想还是括号匹配,不过关键在于如何求出相互匹配的两人中夹杂着多少个男生,我的方法是定义结构体记录每个人左边男生的个数 #include #include #define maxn 1500+5 using namespace std; struct stu { int a,sex;//a位,该人(无论男女)左边男生的个数,sex为该人的性别; }; s原创 2015-04-29 12:30:32 · 946 阅读 · 0 评论 -
vijos P1114 FBI树
二叉树,后续遍历 #include using namespace std; string ans; int n; void build(int l,int r) { int mid=(r+l)/2; if(l!=r) { build(l,mid); build(mid+1,r); } int num0=0,num1=0; for(int i=l;i<=r;i++) {原创 2015-04-29 20:34:40 · 756 阅读 · 0 评论 -
vijos 1025 小飞侠的游园方案
01背包,无压力 #include using namespace std; int dp[1000+5]={0}; int main() { int i,j,n,t; cin>>n>>t; int pr[n][2]; for(i=0;i<n;i++) { cin>>pr[i][0]>>pr[i][1]; } for(i=0;i<n;i++) { for(j=t;j>=p原创 2015-02-23 16:54:40 · 523 阅读 · 0 评论 -
vijos 1042 捕风捉影
这题与hdu上的1431类似,但多加了一个条件,那就是必须是素数,结合了之前的经验,还是很轻松的a了这题. 第一条件是素数,果断筛选(模版走起),应该没什么问题. 之后就是回文了,简单说说可以优化的地方 1. 5-99内满足题意的数只有5,9,11;因此,我们直接从100开始找. 2. 其次就是偶数位回文数必定能被11整除,被整除之后的数依然回文(但回文数乘以11并不一定是回文数)原创 2015-02-22 20:53:27 · 668 阅读 · 0 评论 -
vijos 1047 最小公倍数
高精度辗转相除法求最大公约数,再a*b/最大公约数. 模版偷的 #include #include #include using namespace std; const int L=310; string add(string a,string b) { string ans; int na[L]={0},nb[L]={0}; int la=a.size(),lb=b原创 2015-02-25 19:59:06 · 414 阅读 · 0 评论 -
vijos 1034 家族
第一次写并查积,千辛万苦总算是过了 #include #define maxn 5000+5 using namespace std; int father[maxn]; void re() { int i; for(i=0;i<maxn;i++) { father[i]=i; } } int find(int a)//找根 { if(a!=father[a]) { fat原创 2015-02-16 20:30:29 · 557 阅读 · 0 评论 -
vijos 1115 火星人
说了那么多,其实就是遍历全排列 #include #include #include #include #include #include #include #include #include #include #include #define maxn 10000+5 using namespace std; int a[maxn]; int main() { int n,m; while原创 2015-06-11 18:36:46 · 493 阅读 · 0 评论