栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【Codeforces】A3组刷题记录( 11 / 50 )

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Codeforces】A3组刷题记录( 11 / 50 )

目录

A1. Combination Lock

A2. Summer Camp 

rzt A3. Soft Drinking

★A4. Coder

★A5. GukiZ and Contest 

★A6. Circle Line

rzt A7. Patrick and Shopping 

A8. Choosing Teams 

A9. Vanya and Cubes 

A10. Insomnia cure 

★A11. Cakeminator

★A12. Flag


A1. Combination Lock

https://codeforces.com/contest/540/problem/A?f0a28=1

题意:

转锁 第一行给出密码位数

第二行输入初始密码

第三行输入转完的密码

输出最小转动总数

这题跟之前刷的一道有点像 就是min(顺时针,逆时针)

#include 
#include 
using namespace std;

int main()
{
    int n,res=0,t;
    string a,b;
    cin>>n>>a>>b;
    for(int i=0;i 

A2. Summer Camp 

https://codeforces.com/contest/672/problem/A

题意:

纯纯的打表题 可以先用for循环输出打表内容然后复制

#include 
#include 
using namespace std;

int main()
{
    int n;
    string s="123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460";
    cin>>n;
    cout< 

rzt A3. Soft Drinking

https://codeforces.com/contest/151/problem/A

#include 
using namespace std;

int main()
{
    int n,k,l,c,d,p,nl,np;
    cin>>n>>k>>l>>c>>d>>p>>nl>>np;
    cout< 

★A4. Coder

https://codeforces.com/contest/384/problem/A

题意:

找规律的好题  要使每个棋子互相不攻击到 只要放对角线就行

发现无论n是奇数还是偶数 最多棋子数都满足(n*n+1) / 2

画个图发现 当行列的奇偶性不同时放入点 奇偶性相同时放入C

#include 
using namespace std;

int main()
{
    int n;
    cin>>n;
    cout<<(n*n+1)/2< 

★A5. GukiZ and Contest 

https://codeforces.com/contest/551/problem/A

题意:

思路:贪心 

每名选手的排名应该是1+G 而G表示rating 严格比这名选手大的选手数量

那么就很好想了

#include 
using namespace std;

int main()
{
    int n,a[2001];
    cin>>n;
    for(int i=0;i>a[i];

    for(int i=0;ia[i]) G++;
        cout< 

★A6. Circle Line

https://codeforces.com/contest/278/problem/A

题意:这题没依赖题解 自己做的嘿嘿

min(顺时针,逆时针)大法好 其余的就是画图找规律

分 st 两种情况 

#include 
using namespace std;

int main()
{
    int n,s,t,a[101],sum=0,s1=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    cin>>s>>t;
    if(s>t)
        for(int i=t;i<=s-1;i++) s1+=a[i];
    else
        for(int i=s;i<=t-1;i++) s1+=a[i];
    cout< 

rzt A7. Patrick and Shopping 

https://codeforces.com/contest/599/problem/A

题意:

平面上有三个点A,B,C

给出AB=d1​,AC=d2​,BC=d3​

求从A出发,经过B和C再回到A的最短路径长度(可重复经过点、边)

直接列出四种情况 然后比较谁最小

#include 
using namespace std;

int main()
{
    int d1,d2,d3,da,db,dc,dd;
    cin>>d1>>d2>>d3;
    da=(d1+d2)*2;
    db=d1+d2+d3;
    dc=(d2+d3)*2;
    dd=(d1+d3)*2;
    cout< 

A8. Choosing Teams 

https://codeforces.com/contest/432/problem/A

题意:

总共有n个人,每个人最多参加5场比赛,现在给出每个人已经参加过的比赛次数,要组尽可能多的队伍去继续参加比赛,每支队伍3个人,要求组成的队伍至少再参加k场比赛,问最多可以组几个队

#include 
#include 
using namespace std;

int main()
{
    int n,k,a[2001],cnt=0;
    cin>>n>>k;
    for(int i=0;i>a[i];
    sort(a,a+n);
    if(a[2]+k>5) cout<<0;
    else {
        for(int i=2;i 

A9. Vanya and Cubes 

https://codeforces.com/contest/492/problem/A

题意:

#include 
using namespace std;

int main()
{
    int i,j,n,sum=0,s=0;
    cin>>n;
    for(i=1;n>=sum;i++)
    {
        s=0;
        for(j=1;j<=i;j++)
            s+=j;
        sum+=s;
    }
    cout< 

A10. Insomnia cure 

https://codeforces.com/contest/148/problem/A

题意:

如果是k l m n 的倍数那就会被公主伤害 

#include 
using namespace std;

int main()
{
    int k,l,m,n,d,res=0;
    cin>>k>>l>>m>>n>>d;
    for(int i=1;i<=d;i++)
        if(i%k==0||i%l==0||i%m==0||i%n==0) res++;
    cout< 

★A11. Cakeminator

Problem - A - Codeforces

题意:

怪物不能吃 行和列都同时存在草莓 的蛋糕块 问最后怪物能吃几块蛋糕?

思路一: 标记法——反向操作

如果有草莓 则该行该列都打上标记 说明不能走

此时再来个循环 判断只要 行能走 或 列能走 的 cnt++

我的思路跟这个方法差不多 但我没有做到实现 还是要多学习

#include 
using namespace std;

int main()
{
    int r,c,cnt=0,i,j,b[11]={0},d[11]={0};
    cin>>r>>c;
    char ch;
    for(i=0;i>ch;
            if(ch=='S') //如果有草莓 记录行和列 1表示不能走
            {
                b[i]=1;
                d[j]=1;
            }
        }

    for(i=0;i 

思路二: 容斥原理——正向操作

用a记录能吃的行数  用b记录能吃的列数

运用容斥原理 AUB = A+B - A∩B

#include 
using namespace std;

const int N = 20;
int r[N],c[N],n,m,a,b;
char s[N][N];

int main()
{
	cin>>m>>n;
    for (int i=1;i<=m;i++) r[i]=1;
	for (int i=1;i<=n;i++) c[i]=1;

    for (int i=1;i<=m;i++)
		for (int j=1;j<=n;j++)
        {
			cin>>s[i][j];
			if(s[i][j]=='S') r[i]=c[j]=0;
	    }

	for (int i=1;i<=m;i++)
        a+=r[i];  //记录能吃蛋糕的行数
	for (int i=1;i<=n;i++)
        b+=c[i];  //记录能吃蛋糕的列数

    cout<

 

★A12. Flag

Problem - A - Codeforces

题意:

#include 
using namespace std;

int main()
{
	int n,m,now,last=15,a[101][101];
	cin>>n>>m;
	for(int i=0;i>a[i][j];

    for(int i=0;i 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号