当前位置: 首页 > news >正文

台州网站定制山东网站建设和游戏开发的公司

台州网站定制,山东网站建设和游戏开发的公司,网站管理系统改不了的,公司推进企业安全文化建设题目链接#xff1a;https://codeforces.com/contest/1105 C. Ayoub and Lost Array 题目大意#xff1a;一个长度为n的数组#xff0c;数组的元素都在[L,R]之间#xff0c;并且数组全部元素的和可以被3整除#xff0c;问有多少种方法构建出该数组。答案模1000000007 例 输…题目链接https://codeforces.com/contest/1105   C. Ayoub and Lost Array 题目大意一个长度为n的数组数组的元素都在[L,R]之间并且数组全部元素的和可以被3整除问有多少种方法构建出该数组。答案模1000000007 例 输入 2 1 3输出 3note满足的情况只有[1,2],[2,1],[3,3] 解题思路用dp[i][j]表示长度为i的数组元素大小在[L,R]之间并且元素和模3的余数为j的方案数我们可以计算出[L,R]范围内模3余0\1\2的数的个数,分别设为num0num1num2 我们可以很容易知道dp[1][0]num0dp[1][1]num1dp[1][2]num2而dp[2][0]需要分情况当前1个数和模3余0时第2个数便只能放模3余0的数即有dp[1][0]*num0种当前1个数和模3余1时第2个数便只能放模3余2的数即有dp[1][1]*num2种当前1个数和模3余2时第2个数便只能放模3余1的数即有dp[1][2]*num1种。dp[n][0]即为我们要求的答案。 于是我们便可以得出递推式 dp[i][0]((dp[i-1][0]*num0%moddp[i-1][1]*num2%mod)%moddp[i-1][2]*num1%mod)%mod;dp[i][1]((dp[i-1][0]*num1%moddp[i-1][1]*num0%mod)%moddp[i-1][2]*num2%mod)%mod;dp[i][2]((dp[i-1][0]*num2%moddp[i-1][1]*num1%mod)%moddp[i-1][2]*num0%mod)%mod; 代码 #includeiostream #includecstdio #includecstring #includealgorithm #includevector #includestring #includeset #includecmath #includelist #includedeque #includecstdlib #includebitset #includestack #includemap #includequeue using namespace std; typedef long long ll; #define lson l,mid,rt1 #define rson mid1,r,rt1|1 #define pushup() tree[rt]tree[rt1]tree[rt1|1] const int INF0x3f3f3f3f; const double PIacos(-1.0); const double eps1e-6; const ll mod1e97; const int maxn100005; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} ll lcm(ll a,ll b){return a/gcd(a,b)*b;} ll dp[2000005][5]; ll n,l,r; int main() {ios::sync_with_stdio(false); cin.tie(0);cinnlr;ll num0r/3-(l-1)/3;ll num1num0;ll num2num0;int i,j;for(il;ir;i){if(i%30)break;else if(i%31)num1;else num2;}for(jr;ji;j--){if(j%32)break;else if(j%31){num2--; break;}else if(j%30){num1--; num2--;break;}}dp[1][0]num0; dp[1][1]num1; dp[1][2]num2;for(int i2;in;i){dp[i][0]((dp[i-1][0]*num0%moddp[i-1][1]*num2%mod)%moddp[i-1][2]*num1%mod)%mod;dp[i][1]((dp[i-1][0]*num1%moddp[i-1][1]*num0%mod)%moddp[i-1][2]*num2%mod)%mod;dp[i][2]((dp[i-1][0]*num2%moddp[i-1][1]*num1%mod)%moddp[i-1][2]*num0%mod)%mod;}coutdp[n][0]endl;return 0; }       D. Kilani and the Game   题目大意给出一个n*m的地图,最多9个人,每个人至少含有一个城堡同时有每个人的扩张速度即可以连续扩张的次数现在从1-n轮流从各自的城堡开始扩张不可通过障碍求整个地图被扩张完成后各个人所占领城堡的数目。 Examplesinput3 3 21 11.......2output6 3 解题思路开始就是想bfs嵌套先把每一个玩家从1-n的城堡压入第一个队列再每次把第一个队列的第一个元素弹出压入第二个队列继续进行bfs一直不知道哪里错了看了别人博客后才发现那样是错的如果那样做的话对于这个样例是过不了的 4 3 22 11..1....2... 如果那样做可能会输出9 3而正确答案是10 2。 正确做法应该是每次将第一个队列相同编号的城堡压入到第二个队列然后再对第二个队列进行bfs这样就不会出现上面那种情况了 代码 #includeiostream #includecstdio #includecstring #includealgorithm #includevector #includestring #includeset #includecmath #includelist #includedeque #includecstdlib #includebitset #includestack #includemap #includequeue using namespace std; typedef long long ll; #define lson l,mid,rt1 #define rson mid1,r,rt1|1 #define pushup() tree[rt]tree[rt1]tree[rt1|1] const int INF0x3f3f3f3f; const double PIacos(-1.0); const double eps1e-6; const ll mod1e97; const int maxn100005; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} ll lcm(ll a,ll b){return a/gcd(a,b)*b;} const int dir[4][2]{{1,0},{-1,0},{0,1},{0,-1}}; struct node{int x,y,id;node(int a,int b,int c):x(a),y(b),id(c){} }; struct node1{int x,y,id,steps;node1(int a,int b,int c,int d):x(a),y(b),id(c),steps(d){} }; int n,m,sump,s[10]; vectornode p[10]; char mp[1050][1050]; queuenode que; queuenode1 que1; void BFS() {while(que.size()){node tmpque.front();int idtmp.id;que1.push(node1(tmp.x,tmp.y,tmp.id,0));while(que.size()que.front().idid) //判断第一个队列元素是否为当前压入队列是同一个玩家{que1.push(node1(que.front().x,que.front().y,que.front().id,0));que.pop();}while(que1.size()){node1 nowque1.front();que1.pop();if(now.stepss[now.id]){que.push(node(now.x,now.y,now.id)); //走到最后一步继续压入第一个队列continue;}for(int i0;i4;i){int dxnow.xdir[i][0];int dynow.ydir[i][1];if(dx0dxndy0dymmp[dx][dy].){mp[dx][dy]0now.id;que1.push(node1(dx,dy,now.id,now.steps1));}}}} } int main() {ios::sync_with_stdio(false); cin.tie(0);cinnmsump;for(int i1;isump;i) cins[i];for(int i0;in;i){for(int j0;jm;j){cinmp[i][j];if(mp[i][j]0mp[i][j]9)p[mp[i][j]-0].push_back(node(i,j,mp[i][j]-0)); //同一个玩家的城堡压入同一个向量里}}for(int i1;isump;i)for(int j0;jp[i].size();j)que.push(p[i][j]);BFS();int ans[10];memset(ans,0,sizeof(ans));for(int i0;in;i)for(int j0;jm;j)for(int k1;ksump;k)if(mp[i][j](k0))ans[k];coutans[1];for(int i2;isump;i)cout ans[i];coutendl;return 0; }   转载于:https://www.cnblogs.com/zjl192628928/p/10303329.html
http://www.pierceye.com/news/584491/

相关文章:

  • 看电视剧的免费网站app下载网站等保如何做
  • 如何做网站的营销中山vi设计公司
  • 搜索引擎网站使用的排名规则室内设计联盟网页版
  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做
  • 上海建设银行网站转账记录吗外国网站做问卷调查挣钱
  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站
  • 淄川响应式网站建设网站在国内服务器在国外
  • 施工企业市场经营工作思路及措施个人如何优化网站有哪些方法
  • 怎么做一个盈利网站义乌创博网络科技有限公司
  • 学校网站建设代码不重名的建筑公司名字
  • 网站开发模块的需求海外销售平台有哪些
  • 前端和后端的区别工资郑州网站优化怎样做
  • 小程序模板平台有哪些网站优化包括哪些内容
  • 免费建网站的好的移动端网站模板下载
  • 青岛网站优化排名视频源网站怎么做
  • 做网站找我二级学院网站建设方案
  • 知名网站建设公司 北京近期网络营销的热点事件
  • 网站开发产品经理网站例子
  • 动态静态结合网站网站做404是什么意思
  • 注册域名的网站网站建设的具体步骤
  • 行业网站分类自建站排名
  • 网站备案 登陆安徽省住房和城乡建设厅网站领域
  • 做个网站需要多少钱.网站建设合同注意事项
  • 中国诚信建设网站在线代码生成器
  • 长沙企业网站建设团队目前网络最好的挣钱平台
  • 国家建设工程安全质量监督网站友情链接网