牛客每日练习----开心的涂刷,打车,小猪佩奇练打字

我从前最怕旁人火眼金睛,如今,倒是盼着有人能够洞幽烛远。如此,就能赠我一点欢喜。

链接:https://ac.nowcoder.com/acm/problem/14718
来源:牛客网
 

题目描述

一天小明同学拿着m种颜色的油漆去涂刷n块格子,在涂刷的过程中他发现有很多种涂色方案,并很快的算出了答案,然后他发现如果涂好颜色的格子中只要存在某两个相邻的格子颜色一样,他就会感到开心,他想知道有多少种让他开心的涂刷方案。

输入描述:

输入仅包含一行,包含两个数n,m分别表示格子数和颜色数。(1 <= n <= 1e12, 1 <= m <= 1e12)

输出描述:

输出一行包含一个整数,让小明开心的涂刷方案数。 答案对1000000007取模

示例1

输入

复制

3 2

输出

复制

6

说明

一共有(1, 1, 2), (2, 1, 1), (2, 2, 1), (1, 2, 2), (1, 1, 1), (2, 2, 2) 这6种方案
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x7ffffff
#define P pair
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
ll n,m;
long long q(ll a,ll b) {ll ans=1;while(b){if(b&1)ans=ans*a%MOD;b>>=1;a=a*a%MOD;}return ans;
}
int main()
{cin>>n>>m;m%=MOD;ll jg=(q(m,n)-m*q(m-1,n-1))%MOD;cout<<(jg+MOD)%MOD<

链接:https://ac.nowcoder.com/acm/problem/14712
来源:牛客网

 

 

题目描述

妞妞参加完Google Girl Hackathon之后,打车回到了牛家庄。

妞妞需要支付给出租车司机车费s元。妞妞身上一共有n个硬币,第i个硬币价值为p[i]元。

妞妞想选择尽量多的硬币,使其总价值足以支付s元车费(即大于等于s)。

 

但是如果从妞妞支付的这些硬币中移除一个或者多个硬币,剩下的硬币总价值还是足以支付车费的话,出租车司机是不会接受的。例如: 妞妞使用价值为2,5,7的硬币去支付s=11的车费,出租车司机是不会接受的,因为价值为2这个硬币是可以移除的。

 

妞妞希望能选取最大数量的硬币,使其总价值足以支付车费并且出租车司机能接受。

妞妞希望你能帮她计算最多可以支付多少个硬币。

输入描述:

输入包括两行, 第一行包括两个正整数n和s(1 <= n <= 10, 1 <= s <= 1000), 表示妞妞的硬币个数和需要支付的车费。
第二行包括n个正整数p[i] (1 <= p[i] <= 100),表示第i个硬币的价值。
保证妞妞的n个硬币价值总和是大于等于s。

输出描述:

输出一个整数, 表示妞妞最多可以支付的硬币个数。

示例1

输入

复制

5 9
4 1 3 5 4

输出

复制

3
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x7ffffff
#define P pair
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
int n,sum,k,ans,a[1001];
int main()
{scanf("%d%d",&n,&k);ans=n;for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];}sort(a+1,a+1+n);for(int i=n;i>=1;i--)if(sum-a[i]>=k) ans--,sum-=a[i];printf("%d\n",ans);return 0;
}

链接:https://ac.nowcoder.com/acm/problem/14708
来源:牛客网

 

 

题目描述

猪妈妈让佩奇练习打字, 她给了佩奇一篇只有小写字母的字符串S ( 1 <= |S| <= 105)。 但是佩奇记不住键盘字母的位置,只能看着键盘一个一个打。淘气的乔治趁佩奇不注意, 偷偷的换了键盘按键的位置。 乔治是这样操作的:乔治每次扣下来两个键帽, 并且将这两个键帽互换位置重新安回去, 乔治越玩越起劲,一直重复了m(1 <= m <= 105)次。请输出佩奇打完字后屏幕上显示的实际字符串。

输入描述:

第一行输入一个字符串S ( 1 <= |S| <= 105);
第二行输入一个数字m(1 <= m <= 105), 表示佩奇要操作m次。
之后有m行, 每行有两个字母 c1, c2 表示佩奇要把这两个键帽互换位置。

输出描述:

输出一行字符串, 即佩奇用乔治玩坏的键盘输出的实际字符串。

示例1

输入

复制

helloworld
3
e o
h z
l p

输出

复制

zoppewerpd

备注:

|S| 是字符串s长度
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x7ffffff
#define P pair
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
int n,m;
char s[100006],z[100000];
int main(){scanf("%s",s);scanf("%d", &n);m=strlen(s);for(int i='a';i<='z';i++)z[i]=i;for(int i=1;i<=n;i++){char a,b,c;scanf(" %c %c", &a, &b);c=z[a];z[a]=z[b];z[b]=c;}for(int i=0;i


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章