喵哈哈村的魔法考试 (1)

描述

传说喵哈哈村有三种神奇的魔法石:第一种魔法石叫做人铁石,拥有$A$的能量;第二种魔法石叫做地冈石,拥有$B$的能量;而第三种,则是最神奇的天玄石,拥有无可比拟的$C$的能量!

但是有一天,沈宝宝太调皮了,把一颗天玄石玩丢了……

“这可玩大发了,这样我会被天行廖责备的。”沈宝宝悲伤的说到,“怎么办呢?”

这时候沈宝宝望了望窗外的飞过的白鸽,突然急中生智,想到了一个办法:干脆就用人铁石和地冈石把天玄石凑出来吧!

“只要我拿若干个人铁石,若干个地冈石,他们的能量之和,恰好加起来等于天玄石所拥有的能量。然后再把这些石头粘在一起,那么由若干个石头的组成的整体,我不就可以看做是一个天玄石了吗?“

沈宝宝愈发觉得自己机智。

所以现在有一个问题摆在你的面前了,给你$A$,$B$,$C$,请判断是否存在两个大于等于$0$的整数$x$,$y$满足$Ax+By=C$.

输入

第一行一个T,表示有T组测试数据。
接下来T行,每行三个整数a,b,c,分别表示三块石头的能量值。
满足(1<=T<=100,1 ≤ a, b ≤ 100, 1 ≤ c ≤ 10 000)

输出

对每一组测试答案均需要输出结果,如果可行的话,输出Yes,否则输出No

 
2
1 2 3
4 6 15
样例输出1
Yes
No
题解:不要暴力
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    int a,b,c;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a>>b>>c;
        c+=a;
        while(c-a>=0){
            c-=a;
            if(c%b==0){
                cout<<"Yes"<<endl;
                break;
            }
        }
        if(c<a&&c%b!=0) cout<<"No"<<endl;
    
    }
       
        
        
}

喵哈哈村的狼人杀大战(1)

发布时间: 2017年3月5日 22:19 最后更新: 2017年3月5日 22:22 时间限制: 1000ms 内存限制: 128M

描述

喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!

张小田今天她抽到的是民的身份,按照她的一贯玩法,她不会考虑发言者的发言,她只考虑站队情况。

现在是警上竞选的投票环节,现在只剩下还能当警长的两个真假预言家。

张小田认为,如果在某一天,有连续坐在一起的k个人投票给同一个人的话,那么她就认为这一局可能比较危险。

投给第一个预言家的,就记为0,投给第二个预言家的记为1,于是就可以得到一个01串。

现在张小田就交给你来判断,如果按照张小田 的逻辑来看这一局是否危险!

----

题目翻译:给你一个01串,你需要判断这个01串里面是否存在连续的相同字符的长度超过k个。

假设当前k为3,那么010101001就不危险,11101010就危险。

注意,该01串是串,而不是环。

输入

该题包含多组测试数据。
第一行一个整数k。
第二行一个01串,s。
满足:1<=len(s)<=100,1<=k<=100

输出

如果危险的话,输出Lose,否则输出Win

样例输入1
3
010101001
3
11101010
样例输出1
Win
Lose
题解:位置记录
#include<bits/stdc++.h>
using namespace std;
int cnt[105];
int main(){
    int n,flag=0;
    string s;
    while(cin>>n>>s){
        for(int i=0;i<s.size();i++){
            for(int j=i+1;j<s.size();j++){
                if(s[i]==s[j]) cnt[i]++;
                else break;
            }
            if(cnt[i]>=n-1) flag=1;
        }
    
        if(flag==1) cout<<"Lose"<<endl;
        if(flag==0) cout<<"Win"<<endl;    
        flag=0;memset(cnt,0,sizeof(cnt));
        }
        
    
}

喵哈哈村的嘟嘟熊魔法(3)

发布时间: 2017年3月5日 16:01 最后更新: 2017年3月5日 16:04 时间限制: 1000ms 内存限制: 128M

描述

百度是喵哈哈村的赞助商,所以百度派出了嘟嘟熊给大家展现魔法:

“我歌月徘徊,我舞影零乱。醒时同交欢,醉后各分散。”

只见刹那间,嘟嘟熊就从兜里面掏出了一堆数字,这一堆数字仿佛有了生命,不停的在空气中跃动。

嘟嘟熊的魔法是瞬间将某一个数字转变成其他的数字!只见“嗖”的一下,嘟嘟熊迅速抬起自己的手,凌空一指!其中的一个数字,就变成了另外一个数字了!

这时候,嘟嘟熊转身向戴尔廖提问:“请问这些数字中,第二大的数是什么?”

戴尔廖支支吾吾的不知所措。

这时候戴尔廖望向了你,你是戴尔廖的迷妹,所以你应该帮帮他。

输入

本题包含若干组测试数据。
第一行两个整数n,m,分别表示数字的个数,嘟嘟熊的操作个数。
第二行n个整数,表示嘟嘟熊出来的n个数是什么。
接下来m行:
1 x y,即将第x个数,变成y
2,即查询当前第二大的数是什么。

数据保证,2<=n,m<=100000,1<=a[i],y<=100,1<=x<=n

输出

对于每个询问,输出答案。

 
3 6
1 1 1
2
1 1 2
1 2 2
2
1 1 3
2
样例输出1
1
2
2
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+7;
int a[maxn],wor[105];
int main(){
    int n,m;
    while(cin>>n>>m){
        memset(wor,0,sizeof(wor));
        for(int i=1;i<=n;i++){
            cin>>a[i];
            wor[a[i]]++;
        }
        
        for(int i=0;i<m;i++){
            int op;
            cin>>op;
            if(op==1){
                int pos,shu;
                cin>>pos>>shu;
                wor[a[pos]]--;
                a[pos]=shu;
                wor[a[pos]]++;
                
            }
            
            else{
                int num=2;
                for(int j=100;j>0;j--){
                    if(wor[j]>=num){
                        cout<<j<<endl;break;
                    }
                    else{
                        num-=wor[j];
                    }
                }
                
            }
        }
    }
}

喵哈哈村的美食面馆

发布时间: 2017年3月18日 12:25 时间限制: 1000ms 内存限制: 128M

描述

喵哈哈村的美食面馆开张了,这里的面特别好吃。

星星同学听闻后,就来到了面馆吃东西。

这里是面馆的价目表:

niuroumian(牛肉面):小份8,中份10,大份12

zajiangmian(杂酱面):小份7,中份9,大份11

jiandanmian(煎蛋面):小份8,中份10,大份12

fangbianmian(方便面):小份3,中份5,大份7

roujiamo(肉夹馍):小份4,中份5,大份6

现在星星同学点了一堆菜,她想知道她点了多少钱的菜。

输入

本题包含若干组测试数据。
第一行一个n,表示星星同学点了n道菜。
接下来n行,每行表示星星同学点了什么。
格式为 name size
那么即菜名,size为012,分别表示小份中份大份。
满足 0<=n<=100

输出

输出星星同学一共点了多少钱的。


#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    
    while(cin>>n){
        
        int m[3]={8,10,12},z[3]={7,9,11},r[3]={4,5,6},f[3]={3,5,7},j[3]={8,10,12};
        int ans=0;
        for(int i=0;i<n;i++){
            int k;string s;
            cin>>s>>k;
            if(s[0]=='n')ans+=m[k];
            if(s[0]=='z')ans+=z[k];
            if(s[0]=='j')ans+=j[k];
            if(s[0]=='r')ans+=r[k];
            if(s[0]=='f')ans+=f[k];
            
        }
        cout<<ans<<endl;
    }
}
原文地址:https://www.cnblogs.com/1129-tangqiyuan/p/9487790.html