呵呵哒,上分~

CodeForces 724A:

题意:

给你两个星期几,问连续两个月的头一天是否满足;

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; typedef long long LL;
char s1[20],s2[20];
char s[7][11]= {"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};
int n,m; void solve()
{
for(int i=0;i<7;i++)
{
if(strcmp(s1,s[i])==0)
n=i+1;
if(strcmp(s2,s[i])==0)
m=i+1;
}
}
void judge()
{
if(n>m)
m+=7;
m-=n;
if(m==0||m==2||m==3)
printf("YES\n");
else
printf("NO\n");
} int main()
{
scanf("%s%s",s1,s2);
solve();
judge();
return 0;
}

CodeForces 724B:

题意:

给你一个二维数组,每一行可以不超过一次移动,还可以不超过一次进行任意两列互换;

思路:

状压枚举两列互换的情况,然后对每一行判断,注意还要判断列没有换的情况(我也不知道需不需要,不过判了,没有wa,应该是需要的)

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; typedef long long LL; int a[25][25];
int tmp1[25];
int tmp2[25];
int n,m; bool Judge(int i,int x)
{
int f1=-1;
int f2=-1;
for(int j=0;j<m;j++)
{
if(x&(1<<j))
{
if(f1==-1)
f1=j;
else
f2=j;
}
}
tmp2[f1]=tmp1[f1]=a[i][f2];
tmp2[f2]=tmp1[f2]=a[i][f1];
for(int j=0;j<m;j++)
if(j!=f1&&j!=f2)
tmp2[j]=tmp1[j]=a[i][j];
sort(tmp1,tmp1+m);
int cnt=0;
for(int j=0;j<m;j++)
if(tmp1[j]!=tmp2[j])
{
cnt++;
if(cnt>2)
return false;
}
return true;
} bool judge_hang(int temp)
{
for(int i=0;i<n;i++)
{
if(!Judge(i,temp))
return false;
}
return true;
} int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&a[i][j]); int N=1<<m;
for(int i=0;i<N;i++)
{
int cnt=0;
for(int j=0;j<m;j++)
{
if(i&(1<<j)) cnt++;
}
if(cnt==2||!i)
{
if(judge_hang(i))
{
puts("YES");
return 0;
}
}
}
puts("NO");
return 0;
}

CodeForces 724C:

题意:

射线从(0,0)往(1,1)方向,碰到墙反射,到四个角结束,给你n,m,k,n*m长宽,k点个个数,对于给出点,求最短到达时间,如果不能到达输出"-1"

思路:

暴力处理反弹有多少线,然后处理线上的点,可以预处理输入点的那些经过的线;

CodeForces 724D:

题意:

 给你个数m,再给你一个串,你可以先在1-m中选一个,然后这个位置 [ k+1,k+1+m ) 里面再选一个,然后选的位置与该位置+m的范围内可以再选,使得这个串字典序最小

思路:

我们先考虑几个小问题:

我说在某个m个区间里,我找到了一个最小的,那我取它,行不行,比如m=3 对某个区间是abb,我取a,非常同情达理啊,那我换一下,这个区间是aaa的时候,我是取第一个a还是取第3个a,还是都取,其实这个时候问题就出来了,我们说对于一个答案串,aabbb,然后但是这里有3个aaa是吧,那我肯定得把a全取了啊,这样就能顶替b了,从而达到了字典序最小的字符串,但是如果我说,这个答案串是:aaaaaa那么对于这个区间来说(保证要取),那一定是只取一个就够了,多取只会增大字典序。

那么从而达到一个贪心策略:

对于一个[ i,i+m-1 ]这个区间必取,我们可以维护一个已取的最大值MAX,如果这个区间一有比MAX小的就直接拿过来,因为比最大的小啊,在一定程度上就可以把最大的顶开啊,比如现在已经找到aacc,那我已找到b,就拿过来aabcc,所以一定可以使大的元素的位置远离首位达到字典序变小,然后如果都是>=b呢?那么就取一个最远的,因为还是越少越好啊~

所以总的方案简略的说就是,先顶了最大,如果>=最大,那么就是最小的最远;

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <stack>
using namespace std;
#define mod 10007
#define INF 0x3f3f3f
const double pi=acos(-1.0);
typedef long long LL;
const int MAX=100010;
int n,m;
char s[MAX];
int v[MAX];
int num[110];
int main()
{
int i,j,t,k;
scanf("%d%s",&m,s);
memset(v,0,sizeof(v));
memset(num,0,sizeof(num));
n=strlen(s);
if(n<=m)
{
char x='z';
for(i=0; i<n; i++)
{
if(s[i]<x)
x=s[i];
}
printf("%c\n",x);
return 0;
}
int l=0;
char b='a';
for(i=0; i<n&&i<n-m+1; i++)
{
k=0;
char a='z';
for(j=i; j<m+i; j++)
{
if(s[j]<b)
{
k=j;
break;
}
if(s[j]<=a)
{
a=s[j];
k=j;
}
}
if(s[k]>b)
b=s[k];
num[s[k]-'a']++;
v[k]=1;
i=k;
// printf("%d\n",k);
}
for(i=0; i<n; i++)
{
if(s[i]<b&&!v[i])
{
num[s[i]-'a']++;
}
}
for(i=0; i<26; i++)
{
while(num[i])
{
char x=i+'a';
printf("%c",x);
num[i]--;
}
}
return 0;
}

Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)【A,B,C,D】的更多相关文章

  1. CF Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)

    1. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort    暴力枚举,水 1.题意:n*m的数组, ...

  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)D Dense Subsequence

    传送门:D Dense Subsequence 题意:输入一个m,然后输入一个字符串,从字符串中取出一些字符组成一个串,要求满足:在任意长度为m的区间内都至少有一个字符被取到,找出所有可能性中字典序最 ...

  3. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort

    链接 题意:输入n,m,表示一个n行m列的矩阵,每一行数字都是1-m,顺序可能是乱的,每一行可以交换任意2个数的位置,并且可以交换任意2列的所有数 问是否可以使每一行严格递增 思路:暴力枚举所有可能的 ...

  4. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing

    我不告诉你这个链接是什么 分析:模拟可以过,但是好烦啊..不会写.还有一个扩展欧几里得的方法,见下: 假设光线没有反射,而是对应的感应器镜面对称了一下的话 左下角红色的地方是原始的的方格,剩下的三个格 ...

  5. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C.Ray Tracing (模拟或扩展欧几里得)

    http://codeforces.com/contest/724/problem/C 题目大意: 在一个n*m的盒子里,从(0,0)射出一条每秒位移为(1,1)的射线,遵从反射定律,给出k个点,求射 ...

  6. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) E. Goods transportation (非官方贪心解法)

    题目链接:http://codeforces.com/contest/724/problem/E 题目大意: 有n个城市,每个城市有pi件商品,最多能出售si件商品,对于任意一队城市i,j,其中i&l ...

  7. Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)

    传送门 Description You are given names of two days of the week. Please, determine whether it is possibl ...

  8. Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort(暴力)

    传送门 Description You are given a table consisting of n rows and m columns. Numbers in each row form a ...

  9. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B

    Description You are given a table consisting of n rows and m columns. Numbers in each row form a per ...

  10. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A

    Description You are given names of two days of the week. Please, determine whether it is possible th ...

随机推荐

  1. 【重磅干货】看了此文,Oracle SQL优化文章不必再看!

    目录 SQL优化的本质 SQL优化Road Map 2.1 制定SQL优化目标 2.2 检查执行计划 2.3 检查统计信息 2.4 检查高效访问结构 2.5 检查影响优化器的参数 2.6 SQL语句编 ...

  2. EasyDarwin开源流媒体社区视频教程

    EasyDarwin开源社区出视频教程了,经过几个深夜的努力,终于将第一次课程的5个课时的视频教程录好<EasyDarwin开源流媒体服务器:编译.配置.部署>,EasyDarwin后面会 ...

  3. c# 委托 Predicate的使用示例

    一.说明 委托Predicate 可以有参数(比如下面的示例),也可以不带参数,委托Predicate是返回固定值bool值的委托 二.示例代码(控制台程序) using System; using ...

  4. Carriage-Return Line-Feed

    Git 提交时报错warning: LF will be replaced by CRLF in - CSDN博客 https://blog.csdn.net/yan_less/article/det ...

  5. HTTP Status 405

    分析原因: 1.doPost()和getPost()两个方法继承了父类,造成出错.

  6. Oracle 11gR2 使用RMAN Duplicate复制数据库

    Oracle 11gR2 使用RMAN Duplicate复制数据库     前言:     上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...

  7. Android Button Maker(在线生成android shape xml文件的工具),真方便!

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/scry5566/article/details/25379275        直接上地址:http ...

  8. 2.alert() 函数

    ①alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便. <!DOCTYPE html><html><body> <h1> ...

  9. 向sd卡读写数据

    /data/data 是本地存储 /storage/ 是外部存储 SD卡存储 <uses-permission android:name="android.permission.WRI ...

  10. ZOJ - 3950 How Many Nines 【前缀和】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3950 题意 给出两个日期 求 这个日期 经过 到 另外一个日期 ...