你们有人遇到过这种情况吗?

博主收到一条神秘短信并尝试转发,随后被收取了信息费。该博文详细描述了这一过程,并提出了疑问,是否有其他人遇到过类似的情况。
今天上午,我收到一条发自10658307的短信,内容如下:

想你:总有美好回忆!

爱你:总是风风雨雨!

梦你:总是丝丝甜甜!

为你:总是牵肠挂肚!

见你:总是难舍难分!

祝你*总是顺顺利利*

今天下午,我将上述内容,转发给我的朋友,朋友还没回复,10658307却很快发来了回复短信:“您给137….XXXX 的动感短信发送成功,收取信息费0.3元。回复A每月5元信息费,尽享无限量转发动感短信优惠!
自10658307

请问10658307: 是什么东西?转发也扣钱,你们有人遇到过这种情况吗?
过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了。于是这副牌的主人得意地说:“这是一幅特制的牌,我知道整副牌每一张的重量。只要我们称一下剩下的牌的总重量,就能知道少了哪些牌了。”大家都觉得这个办法不错,于是称出剩下的牌的总重量,开始计算少了哪些牌。由于数据量比较大,过了不久,大家都算得头晕了。 这时,xiaomengxian大声说:“你们看我的吧!”于是他拿出笔记本电脑,编出了一个程序,很快就把缺少的牌找了出来。 如果是你遇到了这样的情况呢?你能办到同样的事情吗? Input Format 第一行一个整数TotalW,表示剩下的牌的总重量。 第二行一个整数N(1<N<=100),表示这副牌有多少张。 接下来N行,每行一个整数Wi(1<=Wi<=1000),表示每一张牌的重量。 Output Format 如果无解,则输出“0”;如果有多解,则输出“-1”;否则,按照升序输出丢失的牌的编号,相邻两个数之间用一个空格隔开。 帮我看一下这道题我的代码的错误,说思路,不要改: #include<bits/stdc++.h> using namespace std; int f[102][100005],g[102][100005];//f存背包最优,g存方案有无及数量 int cost[102],rest,n,ans[102],summ=0,sum=0; bool ff=0; int main() { cin>>rest>>n;//奥对,可以直接找缺失的重量作为背包容量,更简洁 for(int i=1;i<=n;i++) for(int j=1;j<=10005;j++) f[i][j]=-1*0x3f3f3f3f; for(int i=1;i<=n;i++) { cin>>cost[i]; sum+=cost[i]; f[i][0]=0; g[i][0]=1;//将重量全部匹配算作有一种方法 } rest=sum-rest; f[0][0]=0; g[0][0]=1;//0件物品不剩空间也是对的 ,不过好像没必要…… for(int i=1;i<=n;i++) for(int j=rest;j>=cost[i];j--) { f[i][j]=max(f[i-1][j],f[i-1][j-cost[i]]+cost[i]); g[i][j]=0;//在不知道i,j这种方案是否正确时,先预设没有解决方案 if(f[i][j]==f[i-1][j-cost[i]]+cost[i]) g[i][j]+=g[i-1][j-cost[i]]; if(f[i][j]==f[i-1][j]) g[i][j]+=g[i-1][j]; } int aa=g[n][rest];//应该是rest的方案数,就跟以前输出f[v]一样 if(aa>1)//应当检查所有物品处理完成后的状态,因为中间的方案可能有多种,而结果的方案此时唯一 { cout<<-1;//多种方案 return 0; } if(aa==1) ff=1; if(ff==0) { cout<<0; return 0; }//在我的安排下,以下全部都是只有一种情况的代码 int i=n,v=rest; while(i>0) { if(f[i][v]==f[i-1][v]) continue;//第i张牌肯定还在 else//在这里,g[i][v]定义的是方案数,而不是是否选择,课件中两个部分g含义不一样 { ans[++summ]=i; v-=cost[i]; } i--; } sort(ans+1,ans+1+summ); for(int i=1;i<=summ;i++) cout<<ans[i]<<' '; return 0; }
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值