-
个人简介
以后来洛谷找我coreyyp,想看题解的来我主页,别Ctrl-c+v 去洛谷找luogu20111010,看他专栏,抄shibi45(申书源)的卉图讲堂,(现在删了)还抄了几个蓝紫黑,不知道他真实水平能不能做出橙题,liuqinrui不要以为你改名就找不到你
对复制我题解,自己发上去的人我只能说
Success Is No Accident.Failure Is Also.
liuqinrui1我不知道你的洛谷绿名是怎么来的,但我知道在H1005,H1006的出现了与已有题解“相似”的题解,然后又离奇消失是怎么来的。
H1005. 快乐风男
分析
有n个风男,跟着不同的风男,死亡的概率不同。
定义一个结构体,存储名字和死亡概率x,找跟着不同的风男死亡概率的最小值输出。
比较简单,结构体练手题。
注意事项
1.原题里有:
如果所有X均大于100,输出“died!”。
有误导性,不能用
a[i]>100
,应该用大于等于。2.判断要写在for循环外面。
3.加else和return0。
AC code
#include<bits/stdc++.h> using namespace std; struct fn{ string name; int x; }; int main(){ fn a[11]; int n,c=100001,d; string e; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].name>>a[i].x; if(a[i].x<c){ c=a[i].x; d=i; e=a[i].name; } } if(c>=100){ cout<<"died!"; return 0; } else{ cout<<a[d].name; } }
HJ1009. [附加题]香料战争
分析
第 i 个地区有 单位香料,厄崔迪小队使用一种叫做沙虫的交通工具,骑乘沙虫从任何地区前往该地区都要花费 单位香料。 不管从哪个地区去地区,所获得的价值都是相等的,考虑贪心。显然地,如果去一个地区x所获的价值(即 )为负,那肯定不去那个地区,因为去只会让香料变少。另外,就算这个地区的价值为正,但当前的香料不足以去,那也获得不了这个星球的香料,所以,应先以 排序,再进行操作。
对于两个地区的信息 () , () , ,若可以去地区 y ,则一定可以去地区 x ,且去过 x 后一定可以去 y (香料一定会变多),但可以去 x 地区就不一定可以去 y ,若先考虑 y ,则可能会因当前的香料不够而跳过 y ,在遍历 x 后,就算当前香料可以去 y ,也不会再去考虑 y 了。
对于去的地区尽量多,只需要将那些 的地区也考虑到遍历当中,虽然这种地区做不出任何贡献,但可以让访问的地区尽量多。
AC code
#include<bits/stdc++.h> using namespace std; struct pla{ int sum,num; }a[100005]; int n,p,maxn,cnt,tmp=1,x,y; bool cmp(pla x,pla y){ return x.sum<y.sum; } int main() { cin>>n>>p; for(int i=1;i<=n;i++){ cin>>x>>y; if(i==p) maxn=x; else if(x-y>=0){ cnt++; a[cnt].num=x-y; a[cnt].sum=y; } } sort(a+1,a+cnt+1,cmp); for(int i=1;i<=cnt;i++){ if(maxn>=a[i].sum){ maxn+=a[i].num; tmp++; } else break; } cout<<maxn<<endl<<tmp; return 0; }
5月月考,不写注释了
#HJ1011. 数字统计
#include<bits/stdc++.h> using namespace std; int main(){ int m,n; cin>>m>>n; int res=0; for(int i=m;i<=n;i++){ int tmp=i; while(tmp){ if(tmp%10==2){ res++; } tmp/=10; } } cout<<res; }
#HJ1012. 级数求和
#include<bits/stdc++.h> using namespace std; int main() { int k,n=0; cin>>k; double s=0; while(s<=k){ n++; s+=1.0/n; } cout<<n; }
#HJ1013. 纪念品分组
#include<bits/stdc++.h> using namespace std; int main(){ int w,n,a[30010],answer=0,tmp=1; cin>>w>>n; int tt=n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); while(tmp<=tt){ if(a[tmp]+a[tt]<=w){ tmp++; tt--; answer++; }else{ tt--; answer++; } } cout<<answer; }
#HJ1014. Cantor 表
#include<bits/stdc++.h> using namespace std; int main(){ int n,xcs=0,total=0; cin>>n; while(total<n){ xcs++; total+=xcs; } if(xcs%2==1){ cout<<total-n+1<<"/"<<xcs-(total-n); } else{ cout<<xcs-(total-n)<<"/"<<total-n+1; } }
#HJ1015. 车站
#include<bits/stdc++.h> using namespace std; int main(){ int a,n,m,x,temp,falseans[20100]; cin>>a>>n>>m>>x; falseans[1]=1; falseans[2]=1; for(int i=3;i<=n;i++){ falseans[i]=falseans[i-1]+falseans[i-2]; } temp=(m-(falseans[n-3]+1)*a)/(falseans[n-2]-1); cout<<(falseans[x-2]+1)*a+(falseans[x-1]-1)*temp; }
-
通过的题目
- P625
- P626
- P630
- P631
- P634
- P635
- P636
- P637
- P638
- P639
- P640
- P641
- P642
- P643
- P644
- P645
- P646
- P647
- P648
- P649
- P650
- P651
- P652
- P653
- P654
- P655
- P656
- P657
- P659
- P661
- P662
- P669
- P670
- P672
- P684
- P690
- P698
- P699
- H1026
- H1027
- HJ1001
- HJ1002
- HJ1004
- HJ1008
- HJ1006
- HJ1007
- HJ1009
- HJ1015
- HJ1012
- HJ1013
- HJ1014
- HJ1011
- u1001
- u1006
- u1007
- u1008
- H1036
- H1037
- H1038
-
最近活动
-
最近编写的题解
题目标签
- 一本通编程启蒙
- 210
- 编程题
- 5
- 卉图原创
- 5
- 算法基础
- 4
- 入门
- 4
- 模拟
- 3
- 语法基础
- 3
- 数学
- 2
- C++语法
- 2
- 高精度
- 1
- 字符串
- 1
- CSP-J
- 1
- 结构体
- 1
- 枚举
- 1
- 一维数组
- 1
- 思维
- 1
- 循环结构
- 1
- 顺序结构
- 1
- 分支结构
- 1